Shell中的測試命令

2021-10-04 05:10:20 字數 1267 閱讀 8019

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