Вот СПИСОК:
List = "abcd 1234 jvm something"
Как получить второй элемент «1234» без зацикливания всего списка?
нет пробелов между знаком равенства
$ List="abcd 1234 jvm something"
$ set -- $List
$ echo $2
1234
Некоторые другие способы, хотя и не такие эффективные, как использование внутренних компонентов оболочки
$ 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
элементы в массив и получить доступ к конкретному элементу списка оттудаОбратите внимание, что индексы массива насчитывают 0,1,2, ....
Преимущество этого состоит в том, что вы не загрязняете среду оболочки слишком большим количеством новых переменных.
источник
echo
:arr=($List)