Respostas:
sem espaços entre o sinal de igual
$ List="abcd 1234 jvm something"
$ set -- $List
$ echo $2
1234
Algumas outras maneiras, embora não sejam tão eficientes quanto o uso de componentes internos do 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
splits $something
no $IFS
personagem (por espaço padrão) e atribui a peças de divisão para as variáveis posicionais $1
, $2
...
Apenas para complementar a resposta do ghostdog: você também pode colocar $List
os elementos de um array e acessar o elemento específico da lista a partir daí
List="abcd 1234 jvm something"
arr=($List)
echo ${arr[1]}
Observe que os índices da matriz são contados 0,1,2, ....
Isso tem a vantagem de não poluir o ambiente do shell com muitas variáveis novas.
echo
: arr=($List)