shell脚本:嵌套循环并继续

时间:2012-10-25 23:09:31

标签: shell continue

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这样的东西来逃避外循环?

1 个答案:

答案 0 :(得分: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