Odpowiedzi:
VotePedro="Vote for Pedro"
votePedroArray=(${VotePedro})
votePedroArray=("Vote" "For" "Pedro")
daje tablicę o długości 3. I ${VotePedro}
jest taka sama jak $VotePedro
w tym kontekście. Aby uzyskać dostęp do poszczególnych elementów tablicy, możesz użyć nawiasów podobnych do tego, co miałeś dla pętli for w swoim pytaniu. np. ${votePedroArray[0]}
jest pierwszym elementem w tablicy („Głosuj” w tym przykładzie)
W przypadku pozostawienia cudzysłowu zmiennej, np. $VotePedro
Wykonywane są następujące kroki:
IFS
zmiennej; domyślnie jest to spacja, tabulator i nowa linia.W ten sposób możesz podzielić ciąg znaków na elementy rozdzielane spacjami (zakładając wartość domyślną IFS
), wyłączając interpretację symboli wieloznacznych i rozwijając zmienną, której wartością jest ten ciąg poza cudzysłowami.
VotePedro="Vote for Pedro"
set -f
votePedroArray=($VotePedro)
set +f
for i in "${votePedroArray[@]}"; do …
Możesz bezpośrednio dokonać podziału w miejscu użycia; działałoby to nawet w powłokach takich jak sh, które nie mają tablic:
VotePedro="Vote for Pedro"
set -f
for i in ${votePedro}; do
set +f
…
done
set +f