天天看點

編寫Shell管理腳本

編寫Shell管理腳本(二)

一、if語句

1,條件測試

test  測試表達式是否成立,成立結果為0

①,測試檔案狀态

 -d 是否為目錄

 -e 目錄或檔案是否存在

 -f 是否為檔案

 -r 目前使用者是否有權限讀取

 -w 目前使用者是否有權限寫入

 -x 目前使用者是否可執行該檔案

 -L 是否為符号連接配接檔案

②,數值比較

 -eq 等于

 -ne 不等于

 -gt 大于

 -lt 小于

 -le 小于或等于

 -ge 大于或等于

Equal   等于

Not Equal  不等于

Greater Than 大于

Lesser Than 小于

Lesser or Equal 小于或等于

Greater or Equal大于或等于

③,字元串比較

  = 内容相同

 != 内容不同,! 号表示相反的意思

 -z 内容為空

④,條件判斷

-a或&& 邏輯與

 前後表達式都成立時整個測試結果才為真,否則為假 

-o或|| 邏輯或

 操作符兩邊至少一個為真時,結果為真,否則結果為假

! 邏輯否

 當指定的條件不成立時,傳回結果為真

2,if語句格式

①,單分支

if  條件測試指令 

    then   指令序列

fi

②,雙分支

if  條件測試指令

    then   指令序列1

    else   指令序列2

③,多分支

if  條件測試指令1  ;  then

    指令序列1

elif  條件測試指令2  ;  then

    指令序列2

elif  ...

else

    指令序列n

二、for語句(根據變量的不同取值,重複執行一組指令操作)

1,文法

for  變量名  in  取值清單

do

     指令序列

done 

三、while語句(重複測試指定的條件,隻要條件成立則反複執行對應的指令操作)

 while  指令或表達式

 do

            指令清單

 done

四、其他控制語句

1,case多分支

case  變量值  in

    模式1)

           指令序列1

           ;;

    模式2)

          指令序列2

  ……

    * )

          預設執行的指令序列

esac

2,until循環語句

until  條件測試指令

      指令序列

done

3,shift遷移語句

遷移位置變量,将 $1~$9 依次向左傳遞

4,break語句

在for、while、until等循環語句中,用于跳出目前所在的循環體,執行循環體後的語5,continue

在for、while、until等循環語句中,用于跳過循環體内餘下的語句,重新判斷條件以便執行下一次循環句

五、Shell函數應用

function 函數名 {

  指令序列

或者

函數名() {

}

2,調用函數

函數名

3,向函數内傳遞參數

函數名  參數1  參數2  ...

本文轉自 houzaicunsky 51CTO部落格,原文連結:http://blog.51cto.com/hzcsky/481610