您的位置:首页 > 运维架构 > Shell

bash,shell中处理小数

2004-07-07 23:00 309 查看
今天想写一个shell脚本,目的是监控load average,当load average高于7.5了,就重启resin。一直怀疑resin2.*的版本在高利用率下会使得java被锁死。因此系统很不稳定,但是尝试升级到resin3又需要改动线上的java代码,因为resin3对于java的要求更严格了。很多代码都不严格。因此暂时的替代办法是半个小时运行监控程序。
但是写监控程序的时候又碰到问题了,shell处理小数我居然不会。我的脚本是这样的:
#!/bin/sh
A=`uptime|awk -F"," '{print $4}' |awk '{print $3}'`
B=7.50
C=`expr $A /> $B`
if [ $C -eq 1 ]
then
/usr/local/resin/bin/restart.sh
echo `date` >> /usr/local/resin/logs/monitor.log
fi
这样写至少可以正确表达我的意思。但是问题是我在写这段代码时想测试判断小数点的加减乘除却怎么也不行。
bash-2.03# expr 8.8 /+ 9.9
expr: non-numeric argument
郁闷,明天再研究研究!不过大小能比较就ok了,其他属于业余作业,呵呵!

后续:其实shell根本就无法处理小数,我现在将脚本修改如下,以免误导大家,真的太不好意思了:
#!/bin/sh
A=`uptime|awk -F"," '{print $4}' |awk '{print $3}'`
B=`echo $A |awk '$1>9 { printf($1); }'`
if [ "$B" = "$A" ]
then
......
fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: