1. 程式人生 > 其它 >條件測試命令

條件測試命令

條件測試命令
test EXPRESSION
[ EXPRESSION ] #和test 等價,建議使用 [ ]
[[ EXPRESSION ]]

注意:EXPRESSION前後必須有空白字元

1 變數測試

#判斷 NAME 變數是否定義
[ -v NAME ]
#判斷 NAME 變數是否定義並且是名稱引用,bash 4.4新特性
[ -R NAME ]

2 數值測試


-gt 大於
-ge 大於等於
-eq 等於
-ne 不等於
-lt 小於
-le 小於等於

3 字串測試

test和 [ ]用法
-z STRING 字串是否為空,沒定義或空為真,不空為假,
-n STRING 字串是否不空,不空為真,空為假
STRING 同上
STRING1 = STRING2 是否等於,注意 = 前後有空格
STRING1 != STRING2 是否不等於
> ascii碼是否大於ascii碼
< 是否小於
[[]] 用法,建議,當使用正則表示式或萬用字元使用,一般情況使用 [ ]
== 左側字串是否和右側的PATTERN相同
注意:此表示式用於[[ ]]中,PATTERN為萬用字元
=~ 左側字串是否能夠被右側的正則表示式的PATTERN所匹配
注意: 此表示式用於[[ ]]中;擴充套件的正則表示式

4 檔案測試


-a FILE:同 -e
-e FILE: 檔案存在性測試,存在為真,否則為假
-b FILE:是否存在且為塊裝置檔案
-c FILE:是否存在且為字元裝置檔案
-d FILE:是否存在且為目錄檔案
-f FILE:是否存在且為普通檔案
-h FILE 或 -L FILE:存在且為符號連結檔案
-p FILE:是否存在且為命名管道檔案
-S FILE:是否存在且為套接字檔案

檔案許可權測試:
-r FILE:是否存在且可讀
-w FILE: 是否存在且可寫
-x FILE: 是否存在且可執行
-u FILE:是否存在且擁有suid許可權
-g FILE:是否存在且擁有sgid許可權
-k FILE:是否存在且擁有sticky許可權

檔案屬性測試
-s FILE #是否存在且非空
-t fd #fd 檔案描述符是否在某終端已經開啟
-N FILE #檔案自從上一次被讀取之後是否被修改過
-O FILE #當前有效使用者是否為檔案屬主
-G FILE #當前有效使用者是否為檔案屬組
FILE1 -ef FILE2 #FILE1是否是FILE2的硬連結
FILE1 -nt FILE2 #FILE1是否新於FILE2(mtime)
FILE1 -ot FILE2 #FILE1是否舊於FILE2