1

我不知道为什么这个循环在第一项之后停止。有人可以指出我的方向吗?谢谢!

#! /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
4

2 回答 2

2

尝试将其更改为以下内容:

for color in "${colors[@]}"
do
    echo $color
done

删除引号适用于您的示例,但如果有任何单一颜色的空格(例如"sky blue")则无效。

于 2012-04-03T22:06:50.250 回答
2

执行此操作的众多方法之一是使用for循环。这里的附加信息是如何获取数组的大小。

#Get the size of the array
nColors=${#colors[*]}
for (( Idx = 0; Idx < $nColors; ++Idx  )); do
    echo "${colors[$Idx]}"
done
于 2012-04-03T22:09:02.493 回答