[英]Specifying multiple conditions in bash for loop
所以我想在我的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個循環迭代完成之前到達數組的末尾,則停止。
一如既往地感謝您的幫助!
問題是您的for
語句中的-a
或-lt
。 更改為此:
for (( x=1; x<= 50 && $array_position < ${#array[@]}; x++ ))
或進一步簡化整個過程:
for (( x=0; x < 50 && x < ${#array[@]}; x++ ))
do
echo "${array[$x]}"
done
您只需要指定數組大小作為測試,並在達到50時使用break語句:
for (( x=1; x<=${#array[@]}; x++ ))
do
echo ${array[$array_position]}
array_position=$((array_position+1))
[ $x -eq 50 ] && break
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.