【问题标题】:Checking if a float as a string is greater than another检查作为字符串的浮点数是否大于另一个
【发布时间】:2018-07-26 23:36:49
【问题描述】:

我正在尝试编写一个 bash 脚本来解析服务器上的负载,并根据预定义的数值检查该值。如果服务器上的Load值高于预定值,则报错。出于某种原因,我的 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 回来。

【问题讨论】:

    标签: bash shell centos uptime


    【解决方案1】:

    对于bc 1.07.1 版,比较的语法是

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

    另外,缺少echo

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

    【讨论】:

      猜你喜欢
      • 2012-09-10
      • 2019-08-17
      • 1970-01-01
      • 2019-05-11
      • 2011-12-16
      • 1970-01-01
      • 2013-03-11
      • 2011-08-07
      相关资源
      最近更新 更多