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