Shell脚本test命令使用总结和实例
Shell中的test命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
数值测试
参数
说明
-eq
等于则为真
-ne
不等于则为真
-gt
大于则为真
-ge
大于等于则为真
-lt
小于则为真
-le
小于等于则为真
例如:
num1=100 num2=100 iftest$[num1]-eq$[num2] then echo'Thetwonumbersareequal!' else echo'Thetwonumbersarenotequal!' fi
输出:
Thetwonumbersareequal!
字符串测试
参数
说明
=
等于则为真
!=
不相等则为真
-z字符串
字符串长度伪则为真
-n字符串
字符串长度不伪则为真
例如:
num1=100 num2=100 iftestnum1=num2 then echo'Thetwostringsareequal!' else echo'Thetwostringsarenotequal!' fi
输出:
Thetwostringsareequal!
文件测试
参数
说明
-e文件名
如果文件存在则为真
-r文件名
如果文件存在且可读则为真
-w文件名
如果文件存在且可写则为真
-x文件名
如果文件存在且可执行则为真
-s文件名
如果文件存在且至少有一个字符则为真
-d文件名
如果文件存在且为目录则为真
-f文件名
如果文件存在且为普通文件则为真
-c文件名
如果文件存在且为字符型特殊文件则为真
-b文件名
如果文件存在且为块特殊文件则为真
例如:
cd/bin iftest-e./bash then echo'Thefilealreadyexists!' else echo'Thefiledoesnotexists!' fi
输出:
Thefilealreadyexists!
另外,Shell还提供了与(!)、或(-o)、非(-a)三个逻辑操作符用于将测试条件连接起来,其优先级为:“!”最高,“-a”次之,“-o”最低。例如:
cd/bin iftest-e./notFile-o./bash then echo'Onefileexistsatleast!' else echo'Bothdosenotexists!' fi
输出:
Onefileexistsatleast!