4

自从我编写了密集的 bash 脚本以来已经有一段时间了,我忘记了在 for 循环中执行多个条件的语法。

在 C 中,我会这样做:

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

我一直在谷歌搜索,只发现涉及嵌套 for 循环的语法,而不是一个 for 循环的多个条件。

4

2 回答 2

9

听起来你在谈论for loop 的算术

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

哪个假设ij要么未设置要么为零,大约相当于:

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 回答