Test命令用来检测某个条件表达式是否成立,根据判断的对象,分为数值测试,字符测试,文件测试和表达式4种。shell下和C语言里面不一样,使用0表示真,1表示假。应该注意。
1.数值测试
数值测试(图片来源)
参数 | 说明 |
---|
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
2.字符串测试(图片来源)
参数 | 说明 |
---|
= | 等于则为真 |
!= | 不相等则为真 |
-z 字符串 | 字符串长度为0则为真 |
-n 字符串 | 字符串长度不为0则为真 |
参数 | 说明 |
---|
-e 文件名 | 如果文件存在则为真 |
-r 文件名 | 如果文件存在且可读则为真 |
-w 文件名 | 如果文件存在且可写则为真 |
-x 文件名 | 如果文件存在且可执行则为真 |
-s 文件名 | 如果文件存在且至少有一个字符则为真 |
-d 文件名 | 如果文件存在且为目录则为真 |
-f 文件名 | 如果文件存在且为普通文件则为真 |
-c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
-b 文件名 | 如果文件存在且为块特殊文件则为真 |
-o 文件名 | 如果文件存在且属于用户有效ID则为真 |
File1 -ef File2 | 如果两文件存在且具有相同的设备号,节点号则为真 |
File1 -ot File2 | 如果两文件存在且文件1比文件2旧则为真 |
File1 -nt File2 | 如果两文件存在且文件1比文件2新则为真 |
4.表达式
参数 | 说明 |
---|
!(表达式) | 非 |
-a | 与 |
-o | 或 |
以上三个逻辑运算符,优先级主次降低 | |
用到的时候做测试样例再来补充。