条件测试 [ ] test //能够使脚本更智能的工具
1,字符串
== 判断是否相等 != 判断是否不相等
-z 判断是否为空 ! -z
[ a == b ] 或者 test a == b //判断a是否等于b
echo $? //0是判断成功,非0是失败
[ a == a ]
echo $?
[ a != a ] //判断a是否不等于a
echo $?
[ $USER == root ] //判断当前用户是否为root
echo $?
a=10
[ -z $a ] //判断变量a是否为空
echo $? //如果不是空,返回值是非0
a= //a等于空
[ -z $a ]
echo $? //判断结果为0
2,数字
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
X=20 //定义一个测试变量
[ $X -eq 20 ] && echo "相等" || echo "不相等"
相等
[ $X -ne 30 ] && echo "不等于" || echo "等于"
不等于
[ $X -gt 20 ] && echo "大于" || echo "否"
否
[ $X -ge 10 ] && echo "大于或等于" || echo "否"
大于或等于
[ $X -lt 30 ] && echo "小于" || echo "否"
小于
[ $X -le 20 ] && echo "小于或等于" || echo "否"
小于或等于
3,文件 ,
-e 判断文件是否存在,不关心文件类型
-f 判断文件是否存在,且类型必须是普通文件
-d 判断文件是否存在,且类型必须是目录
判断当前用户是否拥有相关权限:
-r 是否有读 对管理员判断无效
-w 是否有写 对管理员判断无效
-x 是否能执行
4,逻辑判断
&& 并且 之前任务成功,才执行之后任务
|| 或者 之前任务失败,才执行之后任务
; 前后无逻辑关系, 执行完前面任务,继续执行后面的
[ a == a ] && echo ok || echo no
[ a == b ] && echo ok || echo no
[ a == b ] || echo ok && echo no
[ a == b ] || echo ok || echo no
[ a == b ] && echo ok && echo no