【问题标题】:bash infinite loop over 3 valuesbash无限循环超过3个值
【发布时间】:2019-03-26 04:17:59
【问题描述】:

我有 3 个静态值:aabbcc。我想用退出案例无限期地循环它们。 编写简单的循环很容易:

for i in aa bb cc; do 
   echo $i
done

但我想无限期地循环它们,直到某些条件是肉:

for i in aa bb cc; do 
   echo $i
   if [ somecondition ]; then
      doSomething
      break
   fi
done

somecondition 取决于外部条件和i。看起来应该尝试使用i 做某事直到成功。

最好的方法是什么?

【问题讨论】:

    标签: bash for-loop infinite-loop


    【解决方案1】:

    一种简单的方法是将代码嵌套在无限循环中:

    while true; do
        for i in aa bb cc; do
            echo $i;
            if [ somecondition ]; then
                doSomething
                break 2
            fi
        done
    done
    

    注意break 命令现在有一个参数2

    man bash 说:

        break [n]
            Exit from within a for, while, until, or  select
            loop.   If  n  is  specified, break n levels.  n
            must be >= 1.  If n is greater than  the  number
            of  enclosing  loops,  all  enclosing  loops are
            exited.  The return value is 0 unless n  is  not
            greater than or equal to 1.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      • 2013-03-26
      • 2019-11-13
      • 2017-06-05
      • 2011-12-16
      • 1970-01-01
      • 2020-11-04
      相关资源
      最近更新 更多