Shell篇(1)-shell介紹及test判斷語句


shell腳本 (script): 是一種Linux操作命令 , 用戶運行腳本時就會自動執行文件中的命令


   shell大致可分爲兩類 : 

       

       1. 入門級腳本 : 腳本文件中僅包含一些操作命令 , 無任何邏輯判斷語句 , 這種腳本只會按照從上到下的順序來執行命令 , 如果某行命令錯誤會自動跳過 , 去執行下一條命令

       2. 高級腳本 : 在入門級腳本的基礎上在加入條件判斷 if , 循環(for , while , until)等邏輯控制語句 , 讓腳本更具有通用性和可移植性


   編寫shell腳本的思路:


       1. 根據目標需求分析需要用到哪些操作命令

       2. 將操作的命令寫入到shell腳本文件中 , 不考慮邏輯判斷

       3. 運行和測試入門級腳本

       4. 對入門級腳本進行優化 , 即添加條件判斷if, 循環等邏輯控制語句

       5. 運行和測試入門級腳本優化後的高級腳本


   test條件判斷:

      

     功能 : 用來判斷文件 , 權限 , 值(數值是否相等 , 是否爲空) .

     幫助手冊 : 在Linux系統中可通過 man test  來查看


     格式:

     test  條件  語句

     

     例1 : 判斷字符長度是否爲零

           test  -z   $x   (-z 意爲 -zero , 表示$x的字符長度爲零時 , 判斷則爲正確)

     

     例2 : 如圖命令行所示;

            image.png

            (echo  $?  顯示的是上一條命令的執行狀態碼 , 0 表示正確 , 1 表示錯誤 )

            先判斷變量y字符長度是否爲0 , echo $? 顯示狀態碼爲0 , 表示判斷結果爲正確 ; 再賦給y一個值 , 顯然test  -z  $y  判斷結果爲錯誤 ,所以echo $? 輸出的狀態碼爲 1

      

    test 判斷語句功能選項介紹


      一 . 判斷字符長度是否爲零 :


      test  -z   $y    (上述例子以解釋)

      test  -n   $y    -n  (no  zero) : 判斷當前變量y字符長度不爲0時 , 結果爲正確


      二 . 判斷字符串內容是否相等 :


      test   a=b        判斷 a 和 b 值是否相等 , 相等則爲正確

      test   a != b     判斷 a 和 b 值是否相等 , 不相等則爲正確 , ! 表示取反

      

      例 : 判斷內容相不相等:

      image.png 

 

      三 . 判斷整數值的大小 :

     

      格式: test    值1  [選項]  值2

      選項有:  -eq        相等

                   -ne    不想等

                   -gt     大於

                   -lt      小於

                   -ge    大於等於

                   -lt      小於等於

      例 : 判斷 5 和 4 值的大小:

      image.png


      四 . 判斷文件類型:

      

      格式 : [  -d   /etc  ]    判斷/etc  是否爲目錄 , /etc 爲目錄則爲真 ( [ ] 兩頭一定要空格)

      Linux系統文件類型分爲 : 普通文件 , 文件目錄 , 塊設備 , 字符設備 , 軟鏈接文件 , 套接字 , 管道文件

      上述文件類型對應的選項爲:   -f            -d           -b           -c             -L              -S           -p

      例 :判斷 /etc 是否爲目錄

      image.png

      例2: 判斷/etc/a.txt 文件是否存在 , 存在則顯示"a.txt exists" ,否則就創建/etc/a.txt

             [  -f  /etc/a.txt  ] && echo "a.txt exists" || touch /etc/a.txt


     五 . 判斷當前文件是否爲可讀(read) , 可寫{write} , 可執行(exec) 權限:

     

     格式 : [  -r  文件名  ]    [  -w  文件名  ]    [  -x  文件名  ]

     例 : 創建文件a.txt , 判斷a.txt 權限是否爲能可執行

     image.png

     

     六 . 邏輯的 與 或 非

     

     格式:  [ ! abc = abcd ]

              [  adc = abc  -a  123 =123  ]     條件全部爲真時則爲真

              [  abc = abcd  -o  123 =123  ]   有一個爲真時則爲真

     image.png

     

      

          

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