Shell脚本之while循环

目录:
一.while循环与until循环
二.循环控制语句continue break shift
三.特殊用法

一.while循环与until循环

  • 1.while循环

              while CONDITION; do
                  循环体
    done 
  • CONDITION:循环控制条件;进入循环之前,先做一次判 断;每一次循环之后会再次做判断;条件为真,则执行 一次循环;直到条件测试状态为假终止循环。
  • 2.until

       until CONDITION; do 
                    循环体 
        done

    until循环与while循环相反CONDITION:循环控制条件为假,则执行 一次循环;直到条件测试状态为真终止循环。
    例子:显示1-5的数字

                    #!/bin/bash
                          n=0
                        while [ $n -lt 5 ];do
                             let  n=$n+1
                            echo $n
                       done
  • until写法

                                    #!/bin/bash
                                      n=0
                                       until [ $n -eq 5 ];do
                                       let  n=$n+1
                                     echo $n
                                       done

    二.循环控制语句

    continue break shift
    ** 1.continue[N] :提前结束第N层的本轮循环,而直接进入下一 轮判断;最内层为第1层

    while CONDTIITON1; do
    CMD1 ...
    if CONDITION2; then
    continue
    fi
    CMDn
    ...
    done

  • 2.break [N]:提前结束第N层循环,最内层为第1层

    while CONDTIITON1; do
    CMD1 ...
    if CONDITION2; then
    break
    fi
    CMDn
    ...
    done

    我们对第一个例子做点修改 在其中加上continue和break

         #!/bin/bash
                  n=0
    while [ $n -lt 5 ];do
          let  n=$n+1
       if [ $n -eq 3 ];then
           continue
        fi
        echo $n
    done
  • 加入continue时输出结果为1245

                 #!/bin/bash
            n=0
       while [ $n -lt 5 ];do
               let  n=$n+1
            if [ $n -eq 3 ];then
               break
            fi
        echo $n
       done
  • 加入break的输出结果为12
    由此可以总结出两者的区别为continue是结束当轮循环
    break是结束当层循环
    3.shift [n] 用于将参量列表 list 左移指定次数,缺省为左移一次。 参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。

                         #!/bin/bash
                          while [ $# -ne 0 ]  ;do
                           echo $1
                            shift
                           done
    
                    输入1 2 3 4 5                  每次显示第一个数
    
                            [root@centos6 app]# ./while.sh 1 2 3 4 5
                              1
                              2
                              3
                              4
                              5

    三.特殊用法

    while read line; do
    循环体
    done < /PATH/FROM/SOMEFILE
    (遍历文件的每一行)

  • 例子
  • 查看一个文件

               [root@centos6 app]# cat 123.txt
                 1
                 2
                 3
                 4
                 5
  • 编写脚本

                           #!/bin/bash
                        while read line ;do
                             n=$[$line+1]
                              echo $n
                         done</app/123.txt
           把所取的变量都加1
                         执行脚本输出结果为
                                     [root@centos6 app]# ./while.sh  
                                       2
                                       3
                                       4
                                       5
                                       6 

转载于:https://blog.51cto.com/13572749/2090930

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值