我不知道为什么这个循环在第一项之后停止。有人可以指出我的方向吗?谢谢!
#! /bin/sh
colors[0]="teal"
colors[1]="purple"
colors[2]="pink"
colors[3]="red"
colors[4]="green"
colors[5]="darkblue"
colors[6]="skyblue"
for color in ${colors}
do
echo $color
done
尝试将其更改为以下内容:
for color in "${colors[@]}"
do
echo $color
done
删除引号适用于您的示例,但如果有任何单一颜色的空格(例如"sky blue"
)则无效。
执行此操作的众多方法之一是使用for
循环。这里的附加信息是如何获取数组的大小。
#Get the size of the array
nColors=${#colors[*]}
for (( Idx = 0; Idx < $nColors; ++Idx )); do
echo "${colors[$Idx]}"
done