温馨提示×

shell中的test命令怎么使用

小亿
100
2023-09-28 04:10:57
栏目: 编程语言

在shell中,test命令用于测试文件或表达式是否为真。它的一般语法如下:

test expression

或者可以使用方括号表示:

[ expression ]

expression是一个用于测试的表达式,可以是以下几种类型之一:

  1. 文件测试:
  • -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:检查文件是否存在且为套接字文件

  1. 字符串测试:
  • -z string:检查字符串是否为空

  • -n string:检查字符串是否非空

  • string1 = string2:检查两个字符串是否相等

  • string1 != string2:检查两个字符串是否不相等

  1. 数值测试:
  • 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

0