1. 程式人生 > >15、自學——Linux的學習進度與任務【bash編程之條件判斷】

15、自學——Linux的學習進度與任務【bash編程之條件判斷】

腳本執行 命令替換 返回 引用 任務 邏輯 與運算 腳本編程 num

bash編程之條件判斷

bash編程之條件判斷:判定後續操作的前提條件是否滿足

          1、條件判斷的常用判斷類型(bash內生的):

              整數測試
              字符測試
              文件測試

        2、echo $?(執行狀態返回值):

              0:正確
              1-255:錯誤

              布爾值:
                真 假
        3、邏輯運算:
              與運算:
                真 && 真 = 真(0)


                真 && 假 = 假(非0)
                假 && 真 = 假
                假 && 假 = 假

              或運算:
                真 || 真 = 真(0)
                真 || 假 = 真
                假 || 真 = 真
                假 || 假 = 假


              非運算:
                !真 = 假


                !假 = 真

        4、bash中如何做測試:test命令

            test 比較表達式
            [ 測試表達式 ]:表達式兩端必須要有空格;bash的內生命令
            [[ 測試表達式 ]]:同上;bash腳本編程的關鍵字

            任何命令的執行結果也可以作為判斷條件

        5、bash中條件判斷使用if:
            單分支:
              if 條件; then
                分支1;


              fi


            雙分支:
              if 條件; then
                分支1;
              else
                分支2;
              fi

            多分支:
              if 條件; then
                分支1;
              elif 條件2; then
                分支2;
              elif 條件3; then
                分支3;
              ...
              else
                分支n;
              fi

              只要命令用作條件,就表示引用的是其狀態結果(即執行成功與否),而非命令的輸出結果,因此,不能使用命令替換符.
              只要希望將命令執行的結果需要保存到一個變量的時候,才需要在命令上加上反引號

bash編程之:整數測試

       1、二元測試:(一般是用兩個數進行比較)
            num1 操作符 num2
          操作符:
              -eq 等於
              -ne 不等於
              -le:小於等於
              -ge:大於等於
              -lt:小於[$num1 -lt $num2]
              -gt:大於[$num1 -gt $num2]
  
       2、bash知識點之腳本自動退出
            exit [n] n為不為0,1,127,255的數字

            條件測試:
                bash :每個命令,執行狀態都有返回值
                  成功:0
                  失敗:非0
                $?:

                腳本的狀態返回值:腳本執行的最後一條命令:
                自定義腳本狀態返回值:exit[n],獲取返回值用$?

                引用命令的執行結果:使用`command`或$(command)
                引用命令執行成功與否的狀態結果:一定是直接執行命令。此時,通常需要將執行結果重定向至/dev/null


            組合條件測試:對條件做邏輯運算

                  與:條件1&&條件2

                    條件1為假,則最終結果一定為假,否則,條件2不予執行
                    條件1為真,則最終條件結果決於後面條件,因此,條件2必須執行

                  或:條件1||條件2

                    條件1為真,則最終結果一定為真,否則,條件2不予執行
                    條件1為假,則最終條件結果決於後面條件,因此,條件2必須執行

                  非: !條件
                    與的優先級大於或,或的優先級大於非

bash編程之:字符測試,一般加引號

          雙目:
            > : 大於
            < :小於

                !=, <>: 不等於
            ==:等於,等值比較, 變量需要加引號
            =~:左側是字符串,右側是一個模式,判斷左側的字符串能否被右側的模式所匹配:通常只在[[]]中使用

           模式中可以使用行首、行尾錨定符,但是模式不要加引號

          單目:
            -n $stringVar: 字符串是否不空,不空為真,空則為假
            -z $stringVar:字符串是否為空,空則為真,不空則假:

15、自學——Linux的學習進度與任務【bash編程之條件判斷】