Linux shell中的if判斷

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 [ “a"eq1o"a" eq 1 -o "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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章