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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章