0

所以我想在我的 bash 脚本中传递一个 for 循环,我希望它根据两个参数停止:

for (( x=1; x<= 50 -a $array_position -lt ${#array[@]}; x++ ))
do
    echo ${array[$array_position]}
    array_position=$((array_position+1))
done

我的意图是让这个 for 循环回显 50 个连续的数组值 [0] - [50],但如果 $array_position 在所有 50 个循环迭代完成之前到达数组的末尾,则停止。

一如既往地感谢任何帮助!

4

2 回答 2

1

问题在于您的陈述中的-aor 。将其更改为:-ltfor

for (( x=1; x<= 50 && $array_position < ${#array[@]}; x++ ))

或者进一步简化整个事情:

for (( x=0;  x < 50 && x < ${#array[@]}; x++ ))
do
    echo "${array[$x]}"
done
于 2013-03-21T16:55:07.817 回答
0

您只需要指定数组大小作为测试,如果达到 50,请使用 break 语句:

for (( x=1; x<=${#array[@]}; x++ ))
do
    echo ${array[$array_position]}
    array_position=$((array_position+1))
    [ $x -eq 50 ] && break
done
于 2013-03-21T16:45:47.347 回答