回答:
VotePedro="Vote for Pedro"
votePedroArray=(${VotePedro})
votePedroArray=("Vote" "For" "Pedro")
、長さが3の配列が得られます。これ${VotePedro}
は、$VotePedro
このコンテキストと同じです。個々の配列要素にアクセスするには、質問のforループで使用したのと同様のブラケットを使用できます。例:${votePedroArray[0]}
配列の最初の要素(この例では「Vote」)
変数展開を引用符で囲まないままにすると、たとえば$VotePedro
、次の手順が実行されます。
IFS
変数の値の文字です。デフォルトでは、スペース、タブ、改行です。したがって、IFS
ワイルドカード展開をオフにし、値が引用符の外の文字列である変数を展開することにより、文字列を空白で区切られた要素に分割できます(デフォルト値はと想定)。
VotePedro="Vote for Pedro"
set -f
votePedroArray=($VotePedro)
set +f
for i in "${votePedroArray[@]}"; do …
使用時に直接分割できます。これは、配列を持たないshなどのシェルでも機能します。
VotePedro="Vote for Pedro"
set -f
for i in ${votePedro}; do
set +f
…
done
set +f