所以我想在我的bash脚本中传递一个for循环,我希望它根据两个参数停止:
for (( x=1; x<= 50 -a $array_position -lt ${#array[@]}; x++ ))
do
echo ${array[$array_position]}
array_position=$((array_position+1))
done
我的目的是让这个循环回显50连续数组值[0] - [50],但是如果$ array_position在所有50个循环迭代完成之前到达数组的末尾,则停止。
任何帮助都一如既往地受到赞赏!
答案 0 :(得分:1)
问题在于-a
声明中的-lt
或for
。将其更改为:
for (( x=1; x<= 50 && $array_position < ${#array[@]}; x++ ))
或者进一步简化整个事情:
for (( x=0; x < 50 && x < ${#array[@]}; x++ ))
do
echo "${array[$x]}"
done
答案 1 :(得分:0)
您只需要指定数组大小作为测试,如果达到50则使用break语句:
for (( x=1; x<=${#array[@]}; x++ ))
do
echo ${array[$array_position]}
array_position=$((array_position+1))
[ $x -eq 50 ] && break
done