條件判斷
條件測試的表達式:
[ expression ] #注意expression的兩邊一定要有一個空格,否則會報語法錯誤。
[[ expression ]] #注意expression的兩邊一定要有一個空格,否則會報告語法錯誤。
test expression
命令的間邏輯關系:
邏輯與: && 或者-a
第一個條件為假時,第二條件不用再判斷,最終結果已經有;
第一個條件為真時,第二條件必須得判斷;
邏輯或: || 或者-o
例如:
如果用戶user6不存在,就添加用戶user6
! id user6 && useradd user6
id user6 || useradd user6
控制語句的結構
單分支if語句
if 判斷條件; then
statement1
statement2
...
fi
雙分支的if語句:
if 判斷條件; then
statement1
statement2
...
else
statement3
statement4
...
fi
多分支的if語句:
if 判斷條件1; then
statement1
...
elif 判斷條件2; then
statement2
...
elif 判斷條件3; then
statement3
...
else
statement4
...
fi
條件判斷的類型分為三種
整數測試
-eq: 測試兩個整數是否相等;比如 $A -eq $B
-ne: 測試兩個整數是否不等;不等,為真;相等,為假;
-gt: 測試一個數是否大於另一個數;大於,為真;否則,為假;
-lt: 測試一個數是否小於另一個數;小於,為真;否則,為假;
-ge: 大於或等於
-le:小於或等於
一個例子:
INT1=63
INT2=77
[ $INT1 -eq $INI2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2
文件測試:
-e FILE:測試文件是否存在
-f FILE: 測試文件是否為普通文件
-d FILE: 測試指定路徑是否為目錄
-r FILE: 測試當前用戶對指定文件是否有讀取權限;
-w ...寫權限
-x ...執行權限
一個例子
[ -e /etc/inittab ]
[ -x /etc/rc.d/rc.sysinit ]
字符測試
字符測試:
==:測試是否相等,相等為真,不等為假
注意:等號的兩邊必須有空格!!!!否則會報語法錯誤
!=: 測試是否不等,不等為真,等為假
>
<
-n string: 測試指定字符串是否為空,空則真,不空則假
-z string: 測試指定字符串是否不空,不空為真,空則為假
本文出自 “厚積薄發” 博客,請務必保留此出處http://joedlut.blog.51cto.com/6570198/1826298