リストをサポートしますが、個別のデータ構造としてはサポートしません(現時点では配列を無視します)。
for
ループは、空白で区切られた値のリスト(一般的な意味で)を、そのリストがどのように作成されたかに関係なく、文字通りかどうかに関係なく繰り返されます。
for i in 1 2 3; do
echo "$i"
done
またはパラメータ展開を介して:
listVar="1 2 3"
for i in $listVar; do
echo "$i"
done
またはコマンド置換:
for i in $(echo 1; echo 2; echo 3); do
echo "$i"
done
配列は、より構造化された値のリストを含めることができる単なる特別なパラメーターであり、各要素自体に空白を含めることができます。違いを比較してください:
array=("item 1" "item 2" "item 3")
for i in "${array[@]}"; do # The quotes are necessary here
echo "$i"
done
list='"item 1" "item 2" "item 3"'
for i in $list; do
echo $i
done
for i in "$list"; do
echo $i
done
for i in ${array[@]}; do
echo $i
done