bash條件測試

2021-09-20 15:54:48 字數 2509 閱讀 5355

表示式的類別:

數值表示式:

-gt:是否大於;     大於,全拼為greate than

-ge:是否大於等於;   大於等於,全拼為greater equal

-eq:是否等於;     相等,全拼為equal

-ne:是否不等於;    不相等,全拼為not equal

-lt:是否小於;     小於,全拼為less than

-le:是否小於等於;   小於等於,全拼為less equal

字串表示式:

==:是否等於;

>:是否大於;

!=:是否不等於;

=~:左側字串是否能夠被右側的pattern所匹配;

note:此表示式一般用於` `中;

-z "string":測試字串是否為空,空則為真,不空則為假;

-n "string":測試字串是否不空,不空則為真,空則為假;

note:用於字串比較時乃至的運算元都應該使用引導

示例:[root@c7-1 ~]# name=obama

[root@c7-1 ~]# [ -z "$name" ]

[root@c7-1 ~]# echo $?

存在性測試

-a file:這個很少用,一般用-e

-e file:檔案存在測試,存在為真。

存在性及類別測試

-b file:是否存在且為塊裝置檔案;

-c file:是否存在且為字元裝置檔案;

-ffile:是否存在且為普通檔案,存在為真,否則為假

-d file:是否存在且為目錄檔案;

-h file或 -l file:存在且為符號鏈結檔案;

-p file:是否存在且為命令管道檔案;

-s file:是否存在且為套接字檔案;

檔案許可權測試:

-r file:是否存在且可讀

-w file:是否存在且可寫

-x file:是否存在且可執行

檔案特殊許可權測試:

-g file:是否存在且擁有sgid許可權;

-u file:是否存在且擁有suid許可權

-k file:是否存在且擁有stick許可權

檔案大小測試:

-s file:是否存在且非空;

檔案是否開啟:

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

-n file:檔案自動上一次被讀取之後是否被修改過;

-o file:當前有效使用者是否為檔案的屬主;

-g file:當前有效使用者是否為檔案的屬組;

雙目測試:

file1 -ef file2:file1與file2是否指向同乙個裝置上的相同inode

file1 -nt file2:file1是否新於file2;

file1 -ot file2:file1是否舊於file2;

組合測試條件:

引用:

linux shell指令碼攻略

字串比較

使用字串比較時,最好用雙中括號,因為有時候採用單個中括號會產生錯誤,所以最好避開它們。

可以用下面的方法檢查兩個字串,看看它們是否相同。

也可以檢查兩個字串是否不同。

我們還可以檢查字串的字母序情況,具體如下所示。

邏輯運算:

第一種方式:

command1 

&&command2     注:先執行command1,只有在command1執行成功時,command2才能夠執行

command1 

||command2     注:先執行command1,只有在command1執行失敗時,command2才能夠執行

! command

[ -e file ] && [ -r file ] 

存在且可讀

第二種方式:

expression1 

-aexpression2

expression1 

-oexpression2

示例

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

如何編寫測試表示式來實現所需的測試 1 執行命令,並利用命令狀態返回值來判斷 0 成功 1 255 失敗 2 測試表示式 test expression expression expression expression兩端必須有空格 bash的測試型別 數值測試 eq 是否等於 ne 是否不等於 g...

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 ...