zoukankan      html  css  js  c++  java
  • linux shell中break和continue跳出循环

    到目前为止,我们已经看到了,创建循环和使用循环来完成不同的任务。有时候,你需要停止循环或跳过循环迭代。

    在本教程中,您将了解以下两个语句用于控制 Shell 循环:

    1. break 语句

    2. continue 语句

    无限循环:

    循环有限的生命,他们跳出来,一旦条件是 false 还是 false 取决于循环。

    由于所需的条件是不符合一个循环可能永远持续下去。永远不会终止执行一个循环执行无限次数。出于这个原因,这样的循环被称为无限循环。

    例子:

    下面是一个简单的例子,使用while循环显示数字0到9:

    #!/bin/sh
    
    a=10
    
    while [ $a -lt 10 ]
    do
       echo $a
       a=`expr $a + 1`
    done

    这个循环将永远持续下去,因为常是大于10,它永远不会成为小于10。所以这是无限循环真实的例子。

    break语句:

    break语句用于终止整个循环的执行,完成后所有行代码break语句的执行。然后,它逐级的代码跟在循环结束。

    语法

    将用于以下break语句退出循环:

    break

    将用于以下break语句退出循环:

    break n

    这里n指定的第n个封闭的循环退出。

    例子:

    下面是一个简单的例子展示了循环将终止只要一变为5:

    #!/bin/sh
    
    a=0
    
    while [ $a -lt 10 ]
    do
       echo $a
       if [ $a -eq 5 ]
       then
          break
       fi
       a=`expr $a + 1`
    done

    这将产生以下结果:

    0
    1
    2
    3
    4
    5

    下面是一个简单的嵌套循环的例子。这个脚本打破两个循环,如果的 var1 等于2 和 var2 等于0:

    #!/bin/sh
    
    for var1 in 1 2 3
    do
       for var2 in 0 5
       do
          if [ $var1 -eq 2 -a $var2 -eq 0 ]
          then
             break 2
          else
             echo "$var1 $var2"
          fi
       done
    done

    这将产生以下结果。内循环有一个 break 命令与参数2。这表明,如果条件得到满足应该跳出外循环,并最终从内循环跳出。

    1 0
    1 5

    continue 语句:

    continue语句break命令类似,但它会导致当前迭代的循环退出,而不是整个循环。

    这种参数是有用的,当一个错误已经发生,但你想尝试执行下一个循环迭代。

    语法

    continue

    和break语句一样,一个整数参数可以给continue命令跳过嵌套循环的命令。

    continue n

    这里n指定第n个封闭循环 continue 。

    例子:

    下面的循环利用continue语句返回,并开始处理下一个语句:

    #!/bin/sh
    
    NUMS="1 2 3 4 5 6 7"
    
    for NUM in $NUMS
    do
       Q=`expr $NUM % 2`
       if [ $Q -eq 0 ]
       then
          echo "Number is an even number!!"
          continue
       fi
       echo "Found odd number"
    done

    这将产生以下结果:

    Found odd number
    Number is an even number!!
    Found odd number
    Number is an even number!!
    Found odd number
    Number is an even number!!
    Found odd number
  • 相关阅读:
    SQL 数据库 复制 与订阅 实现数据同步
    SQL 2008配置管理工具服务显示 远程过程调用失败0x800706be
    SQL2005中使用identity_insert向自动增量字段中写入内
    【树莓派】【转载】基于树莓派,制作家庭媒体中心+下载机
    Linux 按时间批量删除文件(删除N天前文件)
    【树莓派】为树莓派配置或扩展swap分区
    开源硬件相关平台
    【树莓派】树莓派上刷android系统
    【树莓派】树莓派上面安装配置teamviewer
    【树莓派】使用xdrp远程登录树莓派的图形界面
  • 原文地址:https://www.cnblogs.com/xiaojianblogs/p/8242443.html
Copyright © 2011-2022 走看看