bash指令碼程式設計的條件測試

2021-09-23 18:23:33 字數 1454 閱讀 8675

如何編寫測試表示式來實現所需的測試

(1)執行命令,並利用命令狀態返回值來判斷

0:成功

1-255:失敗

(2)測試表示式

test expression

[ expression ]

[[ expression ]]

expression兩端必須有空格

bash的測試型別

數值測試:

-eq: 是否等於;

-ne: 是否不等於

-gt: 是否大於

-ge: 是否大於等於

-lt: 是否小於

-le: 是否小於等於

字串測試:

==:是否等於

>: 是否大於

<: 是否小於

!=: 是否不等於

=~:模式匹配

-z "string": 判斷字串是否為空;空為真

-n "string": 判斷字串是否不空:不空為真

注意:字串要加引號

要使用[[ expression ]]

檔案測試:

存在性測試

-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: 檔案是否有內容

檔案時間戳測試:

-n file: 檔案自從上一次讀操作後是否修改過

從屬關係測試:

-o file: 當前使用者為檔案屬主

-g file: 當前使用者是否屬於檔案屬組

雙目測試:

file1 -ef file2: file1與file2是否硬鏈結

file1 -nt file2: file1是否新於file2

file1 -ot file2: file1是否舊於file2

組合測試條件:

第一種方式:

[ -o file ] &&,||,! [ -r file ]

第二種方式:

[ -o file -a,-o,! -r file ]

BASH指令碼程式設計之條件測試

條件測試 判斷某需求是否滿足,需要由測試機制來實現 如何編寫測試表示式以實現所需的測試 1 執行命令,並利用命令狀態返回值來判斷 0 成功 1 255 失敗 2 測試表示式 test expression expression expression 注意 expression兩端必須有空白字元,否則...

bash指令碼條件測試總結

一 if語句的結構 分為以下三種 單分支 雙分支 多分支 單分支if語句if condition is true then 分支fi雙分支if語句if condition is true then 分支else 分支fi多分支if語句if condition is true then 分支elif ...

bash條件測試

表示式的類別 數值表示式 gt 是否大於 大於,全拼為greate than ge 是否大於等於 大於等於,全拼為greater equal eq 是否等於 相等,全拼為equal ne 是否不等於 不相等,全拼為not equal lt 是否小於 小於,全拼為less than le 是否小於等於...