shell 指令碼程式設計中會廣泛使用 [ 或 test 命令判斷真假。在一些系統上這兩個命令的作用是相同的。為了增強可讀性,當使用 [ 命令時,我們還會使用符號 ] 來結尾。在使用 [ 命令時, [ 命令和檢查條件之間必須留出空格。
可以使用的條件型別歸為 3 類:字串比較、算術和 檔案測試
字串比較
結果string1 = string2
如果兩個字串相同,則結果為真
string1 != string2
如果兩個字串不相同,則結果為真
-n string
如果字串不為空,則結果為真
-z string
如果字串為空,則結果為真
算術比較
結果a -eq b
如果兩個表示式相等,則結果為真
a -ne b
如果兩個表示式不相等,則結果為真
a -gt b
如果a 大於 b ,則結果為真
a -ge b
如果 a 大於等於b,則結果為真
a -lt b
如果 a 小於b,則結果為真
a -le b
如果a 小於等於 b,則結果為真
! a如果a 為假,則結果為真
檔案條件測試
結果-d file
如果 file 為目錄,則結果為真
-e file
如果file 存在,則結果為真。注意:歷史上 -e 選項是不可移植的,所以通常使用 -f 選項代替。
-f file
如果 file 是乙個普通檔案,則結果為真
-g file
如果 file 的set-group-id 為被設定則結果為真
-r file
如果 file 檔案為可讀,則結果為真
-s file
如果file 大小不為0,則結果為真
-u file
如果 file 的set-user-di 位被設定,則結果為真
-w file
如果 file 可寫,則結果為真
-x file
如果 file 可執行,則結果為真
set-user-id: 授予程式擁有者的訪問許可權
set-group-id: 授予程式所在組的訪問許可權,
這兩個特殊位是通過 chmod 命令選項 s 和 g 設定的,對 shell 指令碼不起作用,只對可執行二進位制檔案起作用。
shell程式設計 判斷條件
shell程式設計中有兩種形式進行對判斷條件進行測試 形式一 test 形式二 舉個小例子說明其用法及其注意事項 例子 判斷檔案 new.txt 是否存在,存在現實 exist 不存在現實 not exitst test e new.txt echo exist echo not exist e n...
shell中條件判斷if
a file 如果file存在則為真。b file 如果file存在且是乙個塊特殊檔案則為真。c file 如果file存在且是乙個字特殊檔案則為真。d file 如果file存在且是乙個目錄則為真。e file 如果file存在則為真。f file 如果file存在且是乙個普通檔案則為真。g fi...
shell中if判斷條件
if 的三種條件表示式 ifcommand then if函式 then 命令執行成功,等於返回0 比如grep 找到匹配 執行失敗,返回非0 grep,沒找到匹配 if expression r r r then 表示式結果為真,則返回0,if把0值引向then if test expressio...