shell 條件測試

2022-01-30 00:57:40 字數 2068 閱讀 9117

目錄通常,在bash的各種條件結構和流程控制結構中都要進行各種測試,然後根據測試結果執行不同的操作。執行條件測試通常會返回"真"或"假",類似執行命令,返回0是真,返回非0是假。

條件測試語法

說明語法1:test 《測試表示式》

利用test命令進行條,test後有乙個空格

語法2:[ 《測試表示式》 ]

通過單中括號進行,單中括號中的內容前後都有乙個空格

語法3:[[ 《測試表示式》 ]]

通過雙中括號進行,雙中括號中的內容前後都有乙個空格

語法4:((《測試表示式》))

通過雙小括號進行,雙小括號中的內容前後無空格

特別說明:

注意:推薦使用語法2

&&、||、>、《等操作符可以應用於中,但是在是不能使用,在中一般用-a、-o、-gt等替代

語法:test 《測試表示式》

案例一:test命令

[qinys@localhost 20200313]$ test -f a.txt && echo true || echo false

false

語句中涉及的a.txt檔案是不存在的,所以輸出false,此處條件為真,則執行&&後的語句,條件為假,則執行||後的語句

上述邏輯是乙個聯合邏輯,也可以將上述邏輯拆分開,拆分如下:

[qinys@localhost 20200313]$ test -f a.txt && echo true

[qinys@localhost 20200313]$ test -f a.txt || echo false

false

案例二:test命令中使用-z選項

-z選項表示:如果測試字串的長度為0,則表示式成立

[qinys@localhost 20200313]$ test -z "" && echo 1 || echo 0

1[qinys@localhost 20200313]$ test -z "abc" && echo 1 || echo 0

0

語法:[ 《測試表示式》 ]

中括號內部的兩端要有空格,與test等價,即test的所有判斷選項都可以直接在裡使用

以下是演示案例:使用實現條件測試

[qinys@localhost 20200313]$ [ -f a.txt ] && echo true || echo false

false

此處的條件測試同樣可以拆分,拆分後為:

[qinys@localhost 20200313]$ [ -f a.txt ] && echo true 

[qinys@localhost 20200313]$ [ -f a.txt ] || echo false

false

語法:[[ 《測試表示式》 ]]

以下是演示案例:使用實現條件測試

[qinys@localhost 20200313]$ [[ -f a.txt ]] && echo true || echo false

false

此處的條件測試同樣可以拆分,拆分後為:

[qinys@localhost 20200313]$ [[ -f a.txt ]] && echo true 

[qinys@localhost 20200313]$ [[ -f a.txt ]] || echo false

false

shell條件測試

shell條件測試通常都會用在for while until if等控制流結構中,用於判斷檔案的相關性質或變數的相互關係。條件測試用法 test 表示式 結果 成立返回0,不成立返回非0 檢視結果 echo 以下是幾類常用的測試表示式 1 檔案狀態測試 b filename 當filename 存在...

shell條件測試

shell條件測試 檔案狀態測試 b filename 當filename 存在並且是塊檔案時返回真 返回0 c filename 當filename 存在並且是字元檔案時返回真 d pathname 當pathname 存在並且是乙個目錄時返回真 e pathname 當由pathname 指定的...

shell條件測試

1.數值測試 數值判斷的格式如下 數值1 關係運算子 數值2 方括號與條件之間必須要有空格 eq 兩個數值相等 lt 第乙個數值小於第二個數值 ne 兩個數值不相等 ge 第乙個數值大於第二個數值 gt 第乙個數值不小於第二個數值 le 第乙個數值不大於第二個數值 例 100 eq 100 echo...