shell之條件測試

2021-05-22 22:52:12 字數 1217 閱讀 7004

1、test一般有兩種格式,即: test condition 或 [ condition ] 使用方括號時,要注意在條件兩邊加上空格。 測試檔案狀態是否為o k,但是有時要比較兩個檔案狀態。s h e l l提供三種邏輯操作完成此 功能。 -a 邏輯與,操作符兩邊均為真,結果為真,否則為假。 -o 邏輯或,操作符兩邊一邊為真,結果為真,否則為假。 ! 邏輯否,條件為假,結果為真。

2、字串測試是錯誤捕獲很重要的一部分,特別在測試使用者輸入或比較變數時尤為重要。 字串測試有5種格式。

test 「string」 test string_operator 「string」 test 「string」 string_operator 「string」 [ string_operator string ] [ string string_operator string ] 其中:string_operator可為: = 兩個字串相等。 != 兩個字串不等。 -z 空串。 -n 非空串。

3、測試數值可以使用許多操作符,一般格式如下: "number " number_operator" number " 或者 [ " number " number_operator " number " ]

number_operator可為: -eq 數值相等。 -ne 數值不相等。 -gt 第乙個數大於第二個數。 -lt 第乙個數小於第二個數。 -le 第乙個數小於等於第二個數。 -ge 第乙個數大於等於第二個數。

4、 expr用法,其一般用於整數值,但也可用於字串。

下面加或沒有加空格之間的區別:

root@ubuntu:~# expr 10+10

10+10

root@ubuntu:~# expr 10 + 10

20 在使用乘法的時候,需要使用/來遮蔽其特定的含義。

不同的作業系統可能不同,如我在redhat9上:

[root@usc_28_18 xinbo]# expr 10 * 3

expr: syntax error

[root@usc_28_18 xinbo]# expr 10 /* 3 30

我在ubuntu10.4上:

root@ubuntu:~# expr 30 * 3

90 這樣也是可行的。

不過最好還是加上/,為了相容性。

其常用來增量計算。

root@ubuntu:~# loop=0 root@ubuntu:~# loop=`expr $loop + 1`

Shell學習之條件測試

命令test或 可以測試乙個條件是否成立,如果測試結果為真,則該命令的exit status為 0,如果測試結果為假,則命令的 exit status為1 注意與 c語言的邏輯表示正好相反 例如測試兩個數的大小關係 itcast ubuntu var 2 itcast ubuntu test var...

shell學習之條件測試

test命令用於測試檔案狀態 數字和字串,expr命令測試和執行數值輸出。退出狀態可用 檢視,0表示正確,其他數字表示錯誤。test test命令有兩種格式 1 test 2 注意 兩端都要有空格。常用於測試檔案狀態的選項如下 1 d 目錄 2 s 檔案長度大於0 非空 3 f 正規檔案 4 w 可...

shell條件測試

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