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
阅读剩余
THE END