为什么在bash for循环中使用seq 0

时间:2015-03-11 10:37:19

标签: bash for-loop

为什么在bash中使用seq 0进行循环?

for i in `seq 0 $(( ${#ARRAYEX[@]} - 1 ))`
do
    echo "ARRAYEX${i}=${ARRAYEX[${i}]}"
done

2 个答案:

答案 0 :(得分:3)

seq命令生成一系列数字。

例如

seq 0 10

生成一个从0到10的数字序列:

0 1 2 3 4 5 6 7 8 9 10

(通常每个数字都在一个新行上,但我将它们放在一起)

在您的示例中,生成从0开始直到数组大小减去1的数字序列。 seq 0 $(( ${#ARRAYEX[@]} - 1 ))部分扩展为:

0 1 2 3 4

假设ARRAYEX的大小为5。

在循环内部再次使用数组,因此循环遍历所有数组元素(因为数组的第一个元素从0开始)。

答案 1 :(得分:2)

seq 0 $(( ${#ARRAYEX[@]} - 1 ))创建一个包含数组所有可能索引的序列。您也可以使用

for ((i=0; i<${#ARRAYEX[@]}; ++i )) ; do