shell脚本:嵌套循环并继续
Posted
技术标签:
【中文标题】shell脚本:嵌套循环并继续【英文标题】:shell script : nested loop and continue 【发布时间】:2012-10-25 23:09:30 【问题描述】:while [condition]
do
for [condition]
do
if [ "$x" > 3 ];then
break
fi
done
if [ "$x" > 3 ];then
continue
fi
done
在上面的脚本中,我必须测试"$x" > 3
两次。其实我第一次测试的时候,如果是真的我想跳出while循环,继续下一个while循环。
有没有更简单的方法让我可以使用continue 2
之类的东西来逃避外循环?
【问题讨论】:
为什么不在内部循环中使用continue 2
?
是的 continue n
。你也确定 `for [condition] ... usually it
for n in a b c` 或类似的。祝你好运。
【参考方案1】:
“break”和“continue”是“goto”的近亲,通常应该避免,因为它们会引入一些导致程序控制流飞跃的无名条件。如果存在需要跳转到程序的其他部分的条件,下一个阅读它的人会感谢您为该条件命名,这样他们就不必弄清楚了!
在您的情况下,您的脚本可以更简洁地编写为:
dataInRange=1
while [condition -a $dataInRange]
do
for [condition -a $dataInRange]
do
if [ "$x" > 3 ];then
dataInRange=0
fi
done
done
【讨论】:
以上是关于shell脚本:嵌套循环并继续的主要内容,如果未能解决你的问题,请参考以下文章