shell中的test命令怎么使用
在shell中,test命令用于测试文件或表达式是否为真。它的一般语法如下:
test expression
或者可以使用方括号表示:
[ expression ]
expression是一个用于测试的表达式,可以是以下几种类型之一:
- 文件测试:
-
-e file
:检查文件是否存在 -
-f file
:检查文件是否存在且为普通文件 -
-d file
:检查文件是否存在且为目录 -
-r file
:检查文件是否存在且可读 -
-w file
:检查文件是否存在且可写 -
-x file
:检查文件是否存在且可执行 -
-s file
:检查文件是否存在且非空 -
-h file
:检查文件是否存在且为符号链接 -
-L file
:检查文件是否存在且为符号链接(与-h相同) -
-c file
:检查文件是否存在且为字符设备文件 -
-b file
:检查文件是否存在且为块设备文件 -
-p file
:检查文件是否存在且为命名管道 -
-S file
:检查文件是否存在且为套接字文件
- 字符串测试:
-
-z string
:检查字符串是否为空 -
-n string
:检查字符串是否非空 -
string1 = string2
:检查两个字符串是否相等 -
string1 != string2
:检查两个字符串是否不相等
- 数值测试:
-
num1 -eq num2
:检查两个数是否相等 -
num1 -ne num2
:检查两个数是否不相等 -
num1 -lt num2
:检查num1是否小于num2 -
num1 -le num2
:检查num1是否小于等于num2 -
num1 -gt num2
:检查num1是否大于num2 -
num1 -ge num2
:检查num1是否大于等于num2
在使用test命令时,如果表达式为真,则返回0;如果表达式为假,则返回1。可以使用$?
变量获取上一个命令的返回值。
例如,使用test命令检查文件是否存在:
if test -e file.txt; then
echo "文件存在"
else
echo "文件不存在"
fi
或者使用方括号表示:
if [ -e file.txt ]; then
echo "文件存在"
else
echo "文件不存在"
fi
相关问答