Aqui está uma lista:
List = "abcd 1234 jvm something"
Como obter o segundo elemento "1234" sem repetir toda a lista?
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í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.
fonte
echo
:arr=($List)