簡體   English   中英

在Bash腳本中具有多個條件的for循環

[英]for loop with multiple conditions in Bash scripting

我已經有一段時間了,因為我已經完成了強烈的bash腳本編寫,我忘記了在for循環中執行多個條件的語法。

在C中,我會這樣做:

for(var i=0,j=0; i<arrayOne.length && j<arrayTwo.length; i++,j++){
  // Do stuff
}

我已經谷歌搜索了一段時間,只發現涉及嵌套for循環的語法,而不是一個for循環的多個條件。

聽起來你在談論循環算法

for ((i = j = 0; i < ${#arrayOne[@]} && j < ${#arrayTwo[@]}; i++, j++)); do
    # Do stuff
done

假設ij未設置或為零,大致相當於:

while ((i++ < ${#arrayOne[@]} && j++ < ${#arrayTwo[@]})); do ...

只要你不關心循環后i / j的值,就可以稍微提高一點。

如果將它與C進行比較,則沒有太大區別

for (( c=1,d=1; c<=5 && d<=6; c++,d+=2 ))
do
        echo "$c : $d"
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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