以下是列表:
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
元素放入数组中并从那里访问特定的列表元素
List="abcd 1234 jvm something"
arr=($List)
echo ${arr[1]}
请注意,数组索引计为 0,1,2,... 。
这样做的好处是不会用太多的新变量污染 shell 环境。