三種測試命令
test expression
[expression]
[[expression]]
expression中沒乙個元素前後都要有空格
數值測試
-gt:是否大於
-ge:是否大於等於
-eq:是否等於
-ne:是否不等於
-lt:是否小於
-le:是否小於等於
字串測試
==:是否等於
>:是否大於
<:是否小於
!=:是否不等於
=~:左側字串是否能被右側的patter所匹配,在中使用
-z 「string」:測試字串是否為空,空則為真,不空則為假
-n 「string」:測試字串是否為空,空則為假,不空則為真
注意:用於字串比較是用到的運算元都應加引號
檔案測試
存在測試
-a file:檔案存在測試,存在為真,否則為假
-e file:同上
存在性及類別測試
-b file:是否存在且為裝置檔案
-c file:是否存在且為字元裝置檔案
-d file:是否存在且為目錄檔案
-f file:是否存在且為普通檔案
-p file:是否存在且為管道檔案
-s file:是否存在且為套接字檔案
檔案許可權測試
-g file:是否存在且為sgid許可權
-u file:是否存在且為suid許可權
-k file:是否存在且為sticky許可權
-r file:是否存在且可讀
-w file:是否存在且可寫
-x file:是否存在且可執行
檔案大小測試
-s file:是否存在且非空
檔案是否被開啟
-o file:當前有效使用者是否為檔案屬主
-g file:當前有效使用者是否為檔案屬組
雙目測試
file1 -ef file2:file1和file2是否指向同乙個裝置上的相同inode
file1 -nt file2:file1是否新於file2
file1 -ot file2:file1是否舊於file2
組合測試
[ ]中使用
expression1 -a expression2:兩個條件都為真則為真
expression1 -o expression2:兩個條件有乙個為真則為真
!expression:條件為假時則為真
[[ ]]中使用
expression1 && expression2:兩個條件都為真則為真
expression1 || expression2:兩個條件有乙個為真則為真
!expression:條件為假時則為真
[ ]中使用小括號需要轉意\(\),[[ ]]則無需轉意
bash 檔案測試
a e 檔案存在 存在性類別測試 b 存在且為塊裝置檔案 例如 b etc grub2.cfg c 字元裝置 d 目錄檔案 f 普通檔案 p 命名管道檔案 h l 符號鏈結檔案 s 套接字檔案 許可權測試 r w x 檔案是否存在並且擁有。許可權 特殊許可權 g 存在且存在sgid許可權 u sui...
bash條件測試
表示式的類別 數值表示式 gt 是否大於 大於,全拼為greate than ge 是否大於等於 大於等於,全拼為greater equal eq 是否等於 相等,全拼為equal ne 是否不等於 不相等,全拼為not equal lt 是否小於 小於,全拼為less than le 是否小於等於...
bash 測試語句
組合測試條件 與 a 或 o 非 bash命令組合測試 與 或 非 整數測試 expression a 比較符號 b 大於或等於 ge 例如 a ge b 小於或等於 le 等於 eq 不等 ne 大於 gt 小於 le檔案測試操作符 檔案路徑 f 測試其是否為普通檔案,即ls l時檔案型別為 的檔...