Shell test 命令
Shell 中的test 命令用于检查某个条件是否成立,它可以进行数值,字符和文件三个方面的测试。
数值测试
参数 说明
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真
实例演示:
num1=100
num2=100
if test $[num1] -eq $[num2]
then
echo '两个数相等!'
else
echo '两个数不相等'
fi
输出结果:
两个数相等!
代码中的[]执行基本的算术运算 如:
#!/bin/bash
a=5
b=6
result=$[a+b] # 注意等号两边不能有空格
echo "result 为:$result"
结果为:
result 为: 11
字符串测试
参数 说明
= 等于则为真
!= 不相等则为真
-z字符串 字符串的长度为零则为真
-n 字符串 字符串的长度不为零则为真
实例演示:
num1="rulnoob"
num2="runoob"
if test $num1 = $num2
then
echo '两个字符串相等!'
else
echo '两个字符串不相等!'
fi
输出结果:
两个字符串不相等!
文件测试
参数 说明
-e文件名 说明文件存在则为真
-r 文件名 如果文件存在且可读则为真
-w文件名 如果文件存在且可写则为真
-x文件名 如果文件存在且可执行则为真
-d文件名 如果文件存在且为目录则为真
-f文件名 如果文件存在且为字符型特殊文件则为真
-b文件名 如果文件存在且为块特殊文件则为真
实例演示:
cd /bin
if test -e ./bash
then
echo '文件已存在!'
else
echo '文件不存在!'
fi
输出结果:
文件已经存在!
另外 Shell 还提供了与(-a)或(-o)非(!)三个逻辑操作符用于将测试条件链接起来,其优先级为:!最高 -a 次之 -o 最低