Answers:
等号之间没有空格
$ 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
set -- $something
分裂$something
在$IFS
字符(默认的空间)和分割部件分配给位置变量$1
,$2
...
只是为了补充ghostdog的答案:您还可以将$List
的元素放入数组中,然后从那里访问特定的列表元素
List="abcd 1234 jvm something"
arr=($List)
echo ${arr[1]}
注意,数组索引被计数为0,1,2,...。
这样的优点是不会用太多新变量污染shell环境。
echo
: arr=($List)