條件測試是程序設(shè)計(jì)中不可缺少的一部分.以下就是shell程序設(shè)計(jì)中常見的條件測試方法.
“test”或”[ ]”命令:使用這二個命令用來測試條件是真還是假.使用方法:
if test –f file.c 或 if [ -f file.c ]
then … then …
fi fi
當(dāng)條件滿足(即為真)時(shí),則執(zhí)行then后面的語句.
注意在使用方括號”[]”來測試條件時(shí),方括號要與測試條 件之間留出空格.
測試條件分類:字符串比較類\算術(shù)比較類\與文件相關(guān)的條件測試類
字符串比較類:
string1 = string2 如果兩字符串相同,則結(jié)果為真
string1 != string2 如果兩字符串不相同,則結(jié)果為真
-n string 如果字符串不是空,則結(jié)果為真
-z string 如果字符串是空,則結(jié)果為真
注意在比較相等或不等的時(shí)侯,=/!=的兩邊要與比較的兩字符串要有空格符相隔開
-a 邏輯與,操作符兩邊均為真,結(jié)果為真,否則為假。
-o 邏輯或,操作符兩邊一邊為真,結(jié)果為真,否則為假。
! 邏輯否,條件為假,結(jié)果為真。
算術(shù)比較類:
expression1 –eq expression2 如果兩個表達(dá)式相等,則結(jié)果為真
expression1 –ne expression2 如果兩個表達(dá)式不等,則結(jié)果為真
expression1 –gt expression2 如果前一個表達(dá)式大于后一個表達(dá)工,則結(jié)果為真
expression1 –ge expression2 如果前一個表達(dá)式大于或等于后一個表達(dá)工,則結(jié)果為真
expression1 –lt expression2 如果前一個表達(dá)式小于后一個表達(dá)工,則結(jié)果為真
expression1 –le expression2 如果前一個表達(dá)式小于或等于后一個表達(dá)工,則結(jié)果為真
! expression 取表達(dá)式的非,即表達(dá)式為假,則結(jié)果為真
與文件有關(guān)的文件測試類:
文件條件測試 結(jié)果
-d file 如果文件是一個子目錄,則結(jié)果為真
-e file 如果文件存在,則結(jié)果為真
-f file 如果文件是一個普通文件,則結(jié)果為真
-g file 如果文件的set-group-id被設(shè)置,則結(jié)果為真
-r file 如果文件可讀,則結(jié)果為真
-s file 如果文件的長度不為0,則結(jié)果為真
-u file 如果文件的set-user-id被設(shè)置,則結(jié)果為真
-w file 如果文件可寫,則結(jié)果為真
-x file 如果文件可執(zhí)行,則結(jié)果為真