在Bash脚本中具有多个条件的for循环

时间:2012-04-26 22:16:20

标签: bash for-loop

我已经有一段时间了,因为我已经完成了强烈的bash脚本编写,我忘记了在for循环中执行多个条件的语法。

在C中,我会这样做:

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

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

2 个答案:

答案 0 :(得分:8)

听起来你在谈论算法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的值,就可以轻松获取

答案 1 :(得分:3)

如果将它与C

进行比较,则没有太大区别
for (( c=1,d=1; c<=5 && d<=6; c++,d+=2 ))
do
        echo "$c : $d"
done