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