shell编程中 整数比较
(1) test A -gt B
test 10 -gt 4 && echo 正确 || echo 不正确
(2) [ A -gt b] (注意空格)
[ 10 -gt 5 ]&& echo 正确 || echo 错误
比较符:
比较符:
-eq 相等
-ge 大于或者等于
-gt 大于
-le 小于或者等于
-lt 小于
-ne 不等于
表达式中支持命令
[ `cat /etc/passwd| wc -l` -eq 0 ] && echo "等于0...." || echo "不等于0...."
1: 统计磁盘使用率,如果大于10% 则告警发送邮件,小于10% 则提示磁盘使用正常,当前使用率是多少
[root@baimeidashu ~]#df -h | grep 'sda3' | awk '{print $5}'
11%
![](http://static.51tbox.com/static/2024-08-29/col/b1438aef954afcf9661070581cb57630/6938cb40d4a640598c531ee63f18fbd7.png.jpg)
[root@web00 day02]# cat disk.sh
#!/bin/bash
#第一步获取磁盘的使用率
use_disk=$(df -h|awk 'NR==6{print $(NF-1)}')
#第二步整数比较
if [ ${use_disk%\%} -gt 10 ]
then
echo 当前的磁盘使用率: $use_disk > /tmp/disk.log
mail -s "磁盘使用率告警通知" 2334537366@qq.com < /tmp/disk.log
i=1
else
echo 当前磁盘使用正常,使用率为$use_disk
fi
if [ $i -eq 1 && ${use_disk%\%} -lt 10 ]
then
echo 恢复...
fi
多整数比较:
多整数比较:
-o or 或者
-a and 并且
[ 10 -eq 10 -o 100 -gt 20 ] && echo 正确 || echo 错误
注意: 在正则表达式中使用的比较符
(())
>
<
>=
<=
!=
[root@web00 day02]# ((10<2))
[root@web00 day02]# echo $?
1
[root@web00 day02]# ((10>2))
[root@web00 day02]# echo $?
0
[root@web00 day02]# ((10==2))
[root@web00 day02]# echo $?
1
[root@web00 day02]#
[root@web00 day02]# ((10!=2))
[root@web00 day02]# echo $?
0
多整数比较使用: && 并且 || 或者
[root@web00 day02]# ((10==10 && 10>3))
[root@web00 day02]#
[root@web00 day02]# ((10==10 && 10>3))
[root@web00 day02]# echo $?
0
[root@web00 day02]# ((10==10 && 10<3))
[root@web00 day02]# echo $?
1
[root@web00 day02]# ((10==10 || 10<3))
[root@web00 day02]# echo $?
0
欢迎来撩 :shell 编程从0到1