test = = ]@H_403_20@
文件的属性。本文将通过简单的示例介绍 test 命令的常见用法。
test ;
@H_403_20@
代码的输出结果为:
It@H_403_20@
代码具有更清晰的含义:
test -n ;
@H_403_20@
代码的输出结果和上面一样。
test -z ;
@H_403_20@
代码输出的结果仍然是:
It@H_403_20@
支持两个运算符来判断字符串相等:= 和 ==。
abc=
test == ;
@H_403_20@
代码的输出结果为:
You got same .@H_403_20@
abc=
test != ;
@H_403_20@
代码的输出结果为:
Your word is not .@H_403_20@
代码会发现我们在引用变量时都用双引号包起来了,这是写 shell 脚本中的一个小技巧。尝试运行下面的代码:
abc=
test != $abc;
@H_403_20@
提示语法错误:
test != hello xx@H_403_20@
错误。所以使用双引号包裹变量是一种保护机制,可以提高脚本的健壮性。
支持整数间的比较操作,可用的运算符有 '-eq','-ne','-lt','-le','-gt','-ge'。
num=
test -eq ;
@H_403_20@
代码的输出结果为:
num is .@H_403_20@
n1 ------ge n2 : n1 大于或等于 n2@H_403_20@
文件属性
文件的属性也是 test 常见用法。比如要检查一个文件的类型是不是普通文件,可以使用 -f 选项:
test.=
test -f ;
@H_403_20@
代码的输出结果为:
It@H_403_20@
=
test -d ;
@H_403_20@
代码的输出结果为:
It@H_403_20@
文件是否存在而不关心文件的具体类型。
文件检查运算符:
-b 文件存在并且是块设备文件。
-c 文件存在并且是字符设备文件。
-d 文件存在并且是一个目录。
-e 文件存在。
-f 文件存在并且是一般文件。
-g 文件存在并且设置了 setgid 位。
-h 文件存在并且是一个链接文件。
-p 文件存在并且是一个命名管道(FIFO)。
-r 文件存在并且是可读的。
-s 文件存在并且有内容。
-u 文件存在并且设置了 setuid。
- 文件存在并且是可写的。
-x 文件存在并且是可执行的。
-S : 文件存在并且是一个 socket。@H_403_20@