4

集中的なbashスクリプトを実行してからしばらく経ち、forループで複数の条件を実行するための構文を忘れました。

Cでは、次のようにします。

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

私はしばらくの間グーグルをしていて、ネストされたforループを含む構文のみを見つけました。1つのforループに対する複数の条件は見つかりませんでした。

4

2 に答える 2

9

for loopの算術演算について話しているようです。

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

およびが設定されていないかゼロであると仮定するiと、次とほぼ同等になります。j

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

ループ後のi/の値を気にしない限り、少し移植性が高くなります。j

于 2012-04-26T22:24:29.693 に答える
3

Cと比べても大差ない

for (( c=1,d=1; c<=5 && d<=6; c++,d+=2 ))
do
        echo "$c : $d"
done
于 2012-04-26T22:23:43.367 に答える