Shell 程式設計中條件判斷命令

2021-08-17 08:22:01 字數 1207 閱讀 4062

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...