bash,shell中处理小数

今天想写一个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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值