我不知道为什么这个循环在第一个项目之后停止。有人能指出我的方向吗?谢谢!
#! /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
答案 0 :(得分:2)
尝试将其更改为以下内容:
for color in "${colors[@]}"
do
echo $color
done
删除引号适用于您的示例,但如果单个颜色中有任何空格(例如"sky blue"
)则不行。
答案 1 :(得分:2)
执行此操作的众多方法之一是使用for
循环。这里的其他信息是如何获得数组的大小。
#Get the size of the array
nColors=${#colors[*]}
for (( Idx = 0; Idx < $nColors; ++Idx )); do
echo "${colors[$Idx]}"
done