關鍵詞: 數值測試 字符串測試 文件測試
測試命令有三種方式:
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
注意:EXPRESSION前后有空白字符
bash的測試類型
數值測試
-gt: 是否大於 -ge:是否大於等於 -lt: 是否小於 -le: 是否小於等於 -eq: 是否等於 -ne: 是否不等於
字符串測試
==: 是否等於 >: 是否大於 <: 是否小於 != : 是否不等於 ~=: 左側字符串是否能夠被右側的PATTERN所匹配到 Note:此種表達式一般用於[[]]中 -z "STRING" : 測試字符串是否為空,空則為真,不空為假 -n "STRING": 測試字符串是不不空,不空則為真,空則為假 Note: 字符串比較時用到的操作數都應該使用引號
文件測試
存在性測試 -a FILE -e FILE: 文件存在性測試,存在為真,否則為假 存在性及類別測試 -b FILE: 是否存在且為塊設備文件 -c FILE: 是否存在且為字符設備文件 -d FILE: 是否存在且為目錄文件 -f FILE : 是否存在且為普通文件 -h FILE 或 -L FILE: 是否存在且為符號鏈接文件 -p FILE: 是否存在且為管道文件 -S FILE: 是否存在且為套接字文件 文件權限測試 -r FILE : 是否存在且可讀 -w FILE : 是否存在且可寫 -x FILE : 是否存在且可執行 文件特殊權限測試: -g FILE: 是否存在且擁有sgid權限 -u FILE: 是否存在且擁有suid權限 -k FILE:是否存在且擁有sticky權限 文件大小測試 -s FILE: 是否存在且非空 文件是否打開 -t fd: fd表示文件描述符是否已經打開且與某終端相關 -N FILE:文件自動上次被讀取之后是否被修改過 -O FILE: 當前用戶是否為文件的屬主 -G FIEL: 當前用戶是否為文件屬組 雙目測試 FILE1 -ef FILE2 : FILE1 與 FILE2 是否指向同一個設備上的inode FILE1 -nt FILE2 : FILE1 是否 新於 FILE2 FILE1 -ot FILE2 : FILE1 是否 舊於 FILE2