編寫Shell管理腳本(二)
1、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
fi
③,多分支
if 條件測試命令1 ; then
命令序列1
elif 條件測試命令2 ; then
命令序列2
elif ...
else
命令序列n
fi
2、for語句(根據變量的不一樣取值,重複執行一組命令操做)
1,語法
for 變量名 in 取值列表
do
命令序列
done
3、while語句(重複測試指定的條件,只要條件成立則反覆執行對應的命令操做)
1,語法
while 命令或表達式
do
命令列表
done
4、其餘控制語句
1,case多分支
case 變量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
* )
默認執行的命令序列
esac
2,until循環語句
until 條件測試命令
do
命令序列
done
3,shift遷移語句
遷移位置變量,將 $1~$9 依次向左傳遞
4,break語句
在for、while、until等循環語句中,用於跳出當前所在的循環體,執行循環體後的語5,continue
在for、while、until等循環語句中,用於跳過循環體內餘下的語句,從新判斷條件以便執行下一次循環句
5、Shell函數應用
1,語法
function 函數名 {
命令序列
}
或者
函數名() {
命令序列
}
2,調用函數
函數名
3,向函數內傳遞參數
函數名 參數1 參數2 ...
ide