bash 檔案測試

2021-09-03 09:37:44 字數 1145 閱讀 6192

-a  -e 檔案存在 

存在性類別測試

-b  存在且為塊裝置檔案

例如[-b /etc/grub2.cfg]

-c   .....字元裝置

-d      目錄檔案

-f     普通檔案

-p         命名管道檔案

-h/-l   符號鏈結檔案

-s    套接字檔案

許可權測試

-r  -w  -x  檔案是否存在並且擁有。。許可權

特殊許可權

-g   存在且存在sgid許可權

-u        suid

-k              sticky

大小測試

-s存在且非空(有大小)

檔案是否開啟

-t fd  fd表示檔案描述符是否已經開啟且與某終端相關

-n上次讀取後是否被修改過

-o 當前使用者是否為檔案屬主

-g  當前有效使用者是否為檔案屬主

雙目測試:

file1 -ef file2  表示兩個檔案是否為指向同乙個裝置上的相同的inode

file1 -nt file2  檔案1是否新於2

file1 -ot file2   1是否舊於2

組合測試條件

邏輯運算

兩種方式

第一種&&||!

與或非例子 [-e file] &&[-r file]   存在且可讀  

第二種exp1 -a  exp2

exp1 -o  exp2

! exp 

與或非必須使用測試命令

hotsname=`hostname`

[-z "$hotsname"] || ["$hotsname"=="localhost.localdomain" ]

為空或者等於local..

1 && 2

前面滿足 那麼就會執行2  與命令可以看成條件命令取使用

[! -r /etc/fstab -a ! -w /etc/fstab]

[! \(-r /etc/fstab -o  -w /etc/fstab\)]

這裡的連線需要使用或命令,因為&&連線了兩個命令,讀取了第乙個失敗,那麼就不會讀第二個命令了

既不可讀也不可寫的測試,要注意不能在root使用者下

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

bash中的測試

三種測試命令 test expression expression expression expression中沒乙個元素前後都要有空格 數值測試 gt 是否大於 ge 是否大於等於 eq 是否等於 ne 是否不等於 lt 是否小於 le 是否小於等於 字串測試 是否等於 是否大於 是否小於 是否不...