-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 是否小於等於 字串測試 是否等於 是否大於 是否小於 是否不...