shell中有多種針對檔案、字串、數值的條件測試命令,用於檢查某個條件是否成立。下面分別進行講解。
引數說明
-eq等於則為真
-ne不等於則為真
-gt大於則為真
-ge大於等於則為真
-lt小於則為真
-le小於等於則為真
[root@host]# a=5
[root@host]# test $a -eq 5
0[root@host]# [ $a -gt 8 ] &&echo 0 ||echo 1
1[root@host]# [[ $a -le 5 ]] &&echo 0 ||echo 1
0
對於字串比較測試,務必記住無論是常量字串還是變數應用一定一定要在兩端加雙引號.
在比較關係符兩端一定要加空格。
引數說明
=等於則為真(=兩端要加空格)
!=不等於則為真(=兩端要加空格)
>
大於則為真(僅用於[[ ]],加空格)
<
小等則為真(僅用於[[ ]],加空格)
-n字串長度不為0則為真
-z字串為空則為真
[root@host]# a="leon"
[root@host]# test -n "$a" &&echo 0 ||echo 1
0[root@host]# [ "$a" = "leo" ] &&echo 0 ||echo 1
1[root@host]# [[ "$a" > "leo" ]] &&echo 0 ||echo 1
0
引數
說明-e
檔案存在則為真
-f檔案存在,且為普通檔案則為真
-d檔案存在,且為目錄檔案則為真
-l檔案存在,且為鏈結檔案則為真
-c檔案存在,且為字元裝置檔案則為真
-b檔案存在,且為塊裝置檔案則為真
-r檔案存在,且為可讀檔案則為真
-w檔案存在,且為可寫檔案則為真
-x檔案存在,且為可執行檔案則為真
-s檔案存在,且為非空檔案則為真
[root@host]# a=/bin/ls
[root@host]# test -x "$a" &&sh $a
a.c b.c d.sh
[root@host]# [[ -x "$a" && -s "$a" ]] &&echo0||echo1
0
Shell測試命令
檔案狀態測試 d 目錄 s 檔案長度大於0 非空 f 正規檔案 w 可寫 l 符號連線 u 檔案有s u i d位設定 r 可讀 x 可執行 測試時使用邏輯操作符 a 邏輯與,操作符兩邊均為真,結果為真,否則為假。o 邏輯或,操作符兩邊一邊為真,結果為真,否則為假。邏輯否,條件為假,結果為真。字串測...
Shell 中的條件測試
shell提供了兩種形式的條件測試 test 和 都是shell的內建型別 root localhost shell type test test is a shell builtin root localhost shell type is a shell builtin root localho...
shell中的type命令
type aftpp name name,a 列印name的所有可能情況,比如type a ls,會列印ls is aliased to ls color auto 和ls is bin ls f 不會去查詢function t 列印alias,keyword,function,built in,f...