for bash中的数组循环

时间:2015-04-27 09:28:10

标签: arrays bash

如果我想打印13个元素中的内容直到数组的倒数第二个元素而且我不知道数组有多长,这是用BASH完成的吗?

for array_element in `seq 13 $(({myarray[@]-1))`
do
   echo ${myarray[array_element]}
done

2 个答案:

答案 0 :(得分:2)

由于您使用的是bash,因此请勿使用seq。相反,使用C风格的循环。

for ((i=13; i < ${#myarray[@]} - 1; i++)); do
    echo ${myarray[i]}
done

答案 1 :(得分:0)

你可以这样做:

    for array_element in `seq $((${#myarray[@]}-1))`
    do
       echo ${myarray[$((array_element-1))]}
    done