if常用的幾個判斷
- 文件比較
-e file 如果 file存在,則爲真
-d file 如果 file爲目錄,則爲真
-f file 如果 file爲常規文件,則爲真
-L file 如果 file爲符號鏈接,則爲真
-r file 如果 file可讀,則爲真
-w file 如果 file可寫,則爲真
-x file 如果 file可執行,則爲真
-c file 如果 file爲字符特殊文件爲真
-b file 如果 file爲塊特殊文件爲真
-s file 如果 file大小非0時爲真
-t file 如果 file描述符(默認爲1)指定的設備爲終端時爲真
- 字符判斷
str1 = str2 當兩個串有相同內容、長度時爲真
str1 != str2 當串str1和str2不等時爲真
-n str1 當串的長度大於0時爲真(串非空)
-z str1 當串的長度爲0時爲真(空串)
str1 當串str1爲非空時爲真
\ > \ < 比較大小的時候 可以使用大於號,小於號,但是需轉義。
- 數字判斷
int1 -eq int2 兩數相等爲真
int1 -ne int2 兩數不等爲真
int1 -gt int2 int1大於int2爲真
int1 -ge int2 int1大於等於int2爲真
int1 -lt int2 int1小於int2爲真
int1 -le int2 int1小於等於int2爲真
- 複雜的邏輯判斷
-a 與 and
-o 或 or
! 非
&& 代表and
|| 代表or
例如:
if [ “b” eq 2 ] && [ “$c” eq 3 ]
- 說明
"[]"判斷符號,中括號兩端都需要空格符來分隔。常與if等判斷語句一起使用
例如:
if [ $OSNAME = "AIX" ] ; then
LANG=ja_JP
export LANG
elif [ $OSNAME = "HP-UX" ] ; then
LANG=ja_JP.eucJP
export LANG
fi
test和if判斷類似,
例如:判斷文件是否存在
test -e file
if [ -e file ]
-
if常用判斷有三種形式:
-
只用if…fi的判斷
if [ ${ret} -ne 0 ];then exit 1; fi
- if…else…fi的判斷
if [ $OSNAME = "AIX" ] ; then
LANG=ja_JP
export LANG
else
exit 1
fi
- if…elif…fi/if…elif…else…fi判斷
if [ $OSNAME = "AIX" ] ; then
LANG=ja_JP
export LANG
elif [ $OSNAME = "HP-UX" ] ; then
LANG=ja_JP.eucJP
export LANG
else
exit 1
fi