检查浮点数是否大于字符串

时间:2018-07-26 23:36:49

标签: bash shell centos uptime

我正在尝试编写一个bash脚本,该脚本分析服务器上的负载,并根据预定义的数值检查该值。如果服务器上的“负载”值高于预定值,则会报告错误。由于某些原因,我的if语句在这里遇到问题,其中BAIL变量作为LOAD变量的值返回。

#!/bin/bash
set -a

load=$(uptime | grep -ohe 'load average[s:][: ].*' | awk -F ',' '{ print $2 }' | bc -l)
maxload=$(1.00 | bc -l)
bail=$(echo "$load -gt $maxload" | bc )


if  [[ $bail ]]
then
  echo "LOAD TOO HIGH ON SERVER"
  echo "$load"
  echo "$bail"
  exit 255 
else
  echo "ACCEPTABLE LOAD ON SERVER"
  echo  "$load"
  echo "$bail"
fi

在计算要在if语句中使用的BAIL变量时,我在做什么错?我正试图取回1或0。

1 个答案:

答案 0 :(得分:0)

对于bc版本1.07.1,比较的语法为

bail=$(echo "$load > $maxload" | bc )

此外,缺少echo

maxload=$(echo "1.00" | bc -l)