foreach通常用于遍历数组: 包括普通数组和关联数组. 除此之外, 还可以用于遍历字符串的各个字段(各个字段用IFS变量分割)
遍历普通数组
a=(1 2 3 4 5)
for item in ${a[@]}; do echo $item; done
或
for item in ${a[*]}; do echo $item; done
遍历关联数组
declare -A a
a=([one]=1 [two]=2 [three]=3)
for item in ${a[@]}; do echo $item; done
或
for item in ${a[*]}; do echo $item; done
以上方式相当于对map的values进行遍历, 如果要遍历keyset, 如下:
for key in ${!a[@]}; do
value=${a[$key]}
echo "$key=$value"
done
遍历字符串
字符串将以IFS变量的值分割字符串, 并对每一项进行处理
str="1,2,3,4"
OLD_IFS=$IFS
IFS=","
for item in $item; do echo $item; done