在bash中,如何从列表中获取元素?

分享于 

1分钟阅读

电脑

  繁體 雙語

问题:

下面是一个列表:


List ="abcd 1234 jvm something"



如何在不循环的情况下获取第二个元素" 1234"?


回答 1:

等号之间没有空格


$ List="abcd 1234 jvm something"


$ set -- $List


$ echo $2


1234



一些其他方法,尽管不如使用 shell 内部的效率那么高


$ echo $List | cut -d"" -f2


1234


$ echo $List | awk '{print $2}'


1234


$ echo $List | sed 's/^.[^ t]*//;s/.*//'


1234


$ echo $List | tr"""n"|sed -n '2p'


1234




回答 2:

为了补充ghostdog的回答: 还可以将 $List 元素放入 array 中,并从那里访问特定的列表元素


List="abcd 1234 jvm something"


arr=($List)


echo ${arr[1]}



请注意,array 索引计数 0,1,2,。

这有许多新变量不污染 shell 环境的优点。



lis  列表  BASH  
相关文章