bash中的測試

2021-08-15 05:07:34 字數 1429 閱讀 6254

三種測試命令

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時檔案型別為 的檔...