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