这是一个列表:
List = "abcd 1234 jvm something"
Run Code Online (Sandbox Code Playgroud)
如何在不循环所有列表的情况下获取第二个元素“1234”?
use*_*894 57
等号之间没有空格
$ List="abcd 1234 jvm something"
$ set -- $List
$ echo $2
1234
Run Code Online (Sandbox Code Playgroud)
其他一些方法,虽然不如使用 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
Run Code Online (Sandbox Code Playgroud)
Ben*_*ier 56
只是为了补充 ghostdog 的回答:您还可以将$List的元素放入数组并从那里访问特定的列表元素
List="abcd 1234 jvm something"
arr=($List)
echo ${arr[1]}
Run Code Online (Sandbox Code Playgroud)
请注意,数组索引计数为 0,1,2,... 。
这样做的好处是不会用太多的新变量污染 shell 环境。
| 归档时间: |
|
| 查看次数: |
142756 次 |
| 最近记录: |