shell腳本(二)

一    test條件判斷

  如果表達式爲true,返回0退出狀態,如果表達式爲false,則返回非零退出狀態。test具有替代語法,使用括號“[]”將表達式括起來,更易於閱讀

 1。字符串比較運算符: = ; !=

  **) “ = ”  對兩個字符串進行比較,相等則返回零推出狀態,不相等則返回非零退出狀態

 

 wKioL1lKfzui-BJ7AAA3g4gO3rE273.png

 **)“ != ” 對兩個字符串進行比較,不相等則返回零退出狀態,相等則返回非零退出狀態

 wKiom1lKhb6xPSdtAAA4mLURxRU428.png

  2、數字比較符運算:

   -eq   檢測兩個數是否相等,相等則返回ture

  wKioL1lKhjuQM2swAAAkqeBPORQ987.png

  **) 輸入一個ip ,檢測該主機是否開機,當沒有輸入ip時提示用戶輸入ip

 wKiom1lKkr3hkx3HAABXxdkvvqk265.png

  

  -ne    檢測兩個數是否相等,不相等則返回true

  -lt    檢測左邊的數是否小於右邊的,如果是,則返回true

 wKiom1lKh0XDvSwtAAA3j-9zbx0932.png

  -le    檢測左邊的數是否小於等於右邊的,如果是,則返回true

  -gt    檢測左邊的數是否大於右邊的,如果是,則返回true

  -ge    檢測左邊的數是否大於等於右邊的數,如果是,則返回true

   *)輸入兩個數,將這兩個數相加,判斷他們的結果是否大於10

  wKioL1lKkkbBGWmBAAB3ODqXFE4784.png

3、文件狀態運算符: 

  -b file    檢測文件是否是塊設備,如果是,則返回true

  -c file    檢測文件是否是字符設備文件,如果是,則返回true

  -d file    檢測文件是否是目錄,如果是,則返回true

  -f file    檢測文件是否是普通文件(既不是目錄,也不是設備文件),如果是,則返回true

  -w file    檢測文件是否可寫

  -x file    檢測文件是否可執行

  -s file    檢測文件是否爲空,不爲空則返回true

  -e file    檢測文件是否存在,如果是,則返回true

  -L file    檢測文件是否爲鏈接,如果是,則返回true

 wKiom1lKiX7juS9KAAA-j7N236E068.png

  **)輸入文件名,顯示文件的狀態

 wKioL1lKkejjxwwwAAFh_Ca0sS8257.png

  wKiom1lKkUzyHby7AAC2xmjC4Ys828.png

4.邏輯運算符,

 !   非運算,表達式爲true時,則返回false,否則返回true

 -o   或運算,有一個表達式true則返回true

 -a   與運算,兩個表達式都爲true才返回true

 &&   返回爲true時執行命令

 ||   返回爲false時執行命令

二、if語句

 if命令檢查if後面的命令或列表的退出值。如果第一個命令評估值爲true,則運行then之後的命令列表,直至else。,如果第一個命令的評估爲false非零,則運行else與fi之間的命令列表(反向寫if,標記if塊的結束)

示例:

   **)自動建立目標文件中的用戶,並添加密碼westos

  wKiom1lKjoSigWXUAAEHHyHgrrs690.png

三、expect語句

 在shell中利用exprct實現自動應答腳本

  *)自動應答ssh遠程連接時的問題

  wKioL1lKj7eTfVNHAAC851sjFW0572.png

 *)利用自動應答腳本遠程連接主機並抓取該主機的主機名

 wKiom1lKkHrgPWDFAAEj9ZXwnEY826.png

四、 環境變量

 shell和腳本使用變量來存儲數據,有些變量可以連同他們的內容傳遞給子進程,這些變量稱爲環境變量

 *)env  顯示所有環境變量

  wKiom1lKkUzyHby7AAC2xmjC4Ys828.png

 *)利用alias定義屬於自己系統命令,將命令寫入.bashrc文件永久生效

 wKiom1lKk0DQ7UtfAABaIjzNv2U288.png

  ##講“mv” 命令改爲 “HH”

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