Shell 编程条件判断
1. 按照文件类型进行判断
两种判断格式
方法1:
test -e /root/install.log
方法2:
[-e /root/install.log]
echo $?
第一个判断命令如果正确执行,则打印“yes”,否则打印“no”。
[ -d /root ] && echo "yes" || echo "no"
2. 按照文件权限进行判断
[ -w /root/student.txt ] && echo yes || echo no
只要有一个用户有写权限,则输出yes。
3. 两个文件之间进行比较
硬链接,判断两个文件是否相同可以查看ID号码,如果要系统来判断可以采用如下方法。
创建硬链接
ln /root/student.txt /temp/res.txt
[ /root/student.txt -ef /temp/res.txt ] && echo yes || echo no
4. 两个整数之间比较
[ 23 -gt 22] && echo yes || echo no
5. 字符串的判断
# 给 name 变量赋值
name=sc
# 判断 name 变量是否为空,因为不为空,所以返回no
[ -z "$name"] && echo yes || echo no
给变量 aa 和变量 bb 赋值
aa=11
bb=22
判断两个变量的值是否相等,明显不相等,所以返回 no
[ "$aa"=="bb" ] && echo yes || echo no
> no
注意 [ 和 “ 之间一定要有空格。
6. 多重条件判断
-a 逻辑与
-o 逻辑或
! 逻辑非
判断变量aa是否有值,同时判断变量aa的值是否大于23
因为变量aa的值不大于23,所以虽然第一个判断值为真,返回结果也是假。
aa=11
[ -n "$aa" -a "$aa" -gt 23 ] && echo yes || echo no
> no