簡體   English   中英

在bash for循環中指定多個條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM