【问题标题】:bash infinite loop over 3 valuesbash无限循环超过3个值
【发布时间】:2019-03-26 04:17:59
【问题描述】:
我有 3 个静态值:aa、bb、cc。我想用退出案例无限期地循环它们。
编写简单的循环很容易:
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.