編寫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