使用 test 命令
test命令可用于:
- 檔案屬性測驗
- 字串測驗
- 算數測
test 命令的語法為:
test EXPRESSION
test [ EXPRESSION ]
檔案屬性測驗運算子表
| 運算子 | 描 述 |
|---|---|
| -e <FILE> | 如果<FILE>存在則為真 |
| -f <FILE> | 如果<FILE>存在且只有一個常規檔案則為真 |
| -d <FILE> | 如果<FILE>存在且只有一個目錄則為真 |
| -c <FILE> | 如果<FILE>存在且是一個特殊字符檔案則為真 |
| -b <FILE> | 如果<FILE>存在且是一個特殊塊檔案則為真 |
| -p <FILE> | 如果<FILE>存在且是一個命名管道則為真 |
| -S <FILE> | 如果<FILE>存在且是一個套接字檔案則為真 |
| -L <FILE> | 如果<FILE>存在且是一個符號鏈接則為真 |
| -h <FILE> | 如果<FILE>存在且是一個符號鏈接則為真 |
| -g <FILE> | 如果<FILE>存在且是設定了sgid位則為真 |
| -u <FILE> | 如果<FILE>存在且是設定了suid位則為真 |
| -r <FILE> | 如果<FILE>存在且是可讀的則為真 |
| -w <FILE> | 如果<FILE>存在且是可寫的則為真 |
| -x <FILE> | 如果<FILE>存在且是可執行的則為真 |
| -s <FILE> | 如果<FILE>存在且不為空則為真 |
| -t <fd> | 如果檔案描述符<fd>已打開且參考了一個終端則為真 |
| <FILE1> -nt <FILE2> | 如果<FILE1> 比 <FILE2>新則為真 |
| <FILE1> -ot <FILE2> | 如果<FILE1> 比 <FILE2>舊則為真 |
| <FILE1> -ef <FILE2> | 有硬鏈接到 <FILE2>則為真 |
例如:檢查檔案是否存在
test -e /bin/cp && echo "command $_ found." || echo "command $_ not found."
注意:"$_" 表示前一個執行的命令中的最后一個引數
例如:檢查目錄/local 是否存在
test -d /local && echo "The directory $_ is exist." || echo "The directory $_ does not exist
等等...,都可以通過上面表格的引數進行檢查
| 運算子 | 描 述 |
|---|---|
| -z <STRING> | 如果<STRING>為空則為真 |
| -n <STRING> | 如果<STRING>不為空則為真 |
| <STRING1> = <STRING2> | 如果<STRING1>與<STRING2>相同則為真 |
| <STRING1> != <STRING2> | 如果<STRING1>與<STRING2>不相同則為真 |
| <STRING1> < <STRING2> | 如果<STRING1>的字典順序排在<STRING2>之前則為真 |
| <STRING1> > <STRING2> | 如果<STRING1>的字典順序排在<STRING2>之后則為真 |
使用字串測驗運算子的例子:
test "abc" = "cde"; echo $?
test "abc" = "cde"; echo $?
test "abc" \< "def"; echo $?
test "abc" \> "def"; echo $?
[ "abc" \< "def" ]; echo $?
[ -z "" ]; echo $?
[ -n "abc" ]; echo $?
注意:"<" 和 ">" 運算子同樣被shell用于重定位,所示必須使用"\"字符將其轉義
用于算術測驗的運算子:
| 運算子 | 描 述 |
|---|---|
| <INTEGER1> -eq <INTEGER2> | 如果<INTEGER1> 與 <INTEGER2>相等則為真 |
| <INTEGER1> -ne <INTEGER2> | 如果<INTEGER1> 與 <INTEGER2>相等則為真 |
| <INTEGER1> -le <INTEGER2> | 如果<INTEGER1> 大于或等于 <INTEGER2>不相等則為真 |
| <INTEGER1> -ge <INTEGER2> | 如果<INTEGER1> 小于或等于 <INTEGER2>則為真 |
| <INTEGER1> -lt <INTEGER2> | 如果<INTEGER1> 小于 <INTEGER2>則為真 |
| <INTEGER1> -gt <INTEGER2> | 如果<INTEGER1> 大于 <INTEGER2>則為真 |
算術測驗運算子的例
子:
test 5 -eq 5 && echo Yes || echo No
test 5 -ne 10 && echo Yes || echo No
[ 5 -le 10 ] && echo Yes || echo No
[ 10 -le 10 ] && echo Yes || echo No
[ 5 -ge 10 ] && echo Yes || echo No
over....
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298202.html
標籤:其他
上一篇:Spring Cloud Gateway修改請求和回應body的內容
下一篇:powersploit使用方法
