在shell中,test命令用于測(cè)試文件或表達(dá)式是否為真。它的一般語(yǔ)法如下:
test expression
或者可以使用方括號(hào)表示:
[ expression ]
expression是一個(gè)用于測(cè)試的表達(dá)式,可以是以下幾種類型之一:
-e file
:檢查文件是否存在
-f file
:檢查文件是否存在且為普通文件
-d file
:檢查文件是否存在且為目錄
-r file
:檢查文件是否存在且可讀
-w file
:檢查文件是否存在且可寫
-x file
:檢查文件是否存在且可執(zhí)行
-s file
:檢查文件是否存在且非空
-h file
:檢查文件是否存在且為符號(hào)鏈接
-L file
:檢查文件是否存在且為符號(hào)鏈接(與-h相同)
-c file
:檢查文件是否存在且為字符設(shè)備文件
-b file
:檢查文件是否存在且為塊設(shè)備文件
-p file
:檢查文件是否存在且為命名管道
-S file
:檢查文件是否存在且為套接字文件
-z string
:檢查字符串是否為空
-n string
:檢查字符串是否非空
string1 = string2
:檢查兩個(gè)字符串是否相等
string1 != string2
:檢查兩個(gè)字符串是否不相等
num1 -eq num2
:檢查兩個(gè)數(shù)是否相等
num1 -ne num2
:檢查兩個(gè)數(shù)是否不相等
num1 -lt num2
:檢查num1是否小于num2
num1 -le num2
:檢查num1是否小于等于num2
num1 -gt num2
:檢查num1是否大于num2
num1 -ge num2
:檢查num1是否大于等于num2
在使用test命令時(shí),如果表達(dá)式為真,則返回0;如果表達(dá)式為假,則返回1。可以使用$?
變量獲取上一個(gè)命令的返回值。
例如,使用test命令檢查文件是否存在:
if test -e file.txt; then
echo "文件存在"
else
echo "文件不存在"
fi
或者使用方括號(hào)表示:
if [ -e file.txt ]; then
echo "文件存在"
else
echo "文件不存在"
fi