检查作为字符串的浮点数是否大于另一个
Checking if a float as a string is greater than another
我正在尝试编写一个 bash 脚本来解析服务器上的负载,并根据预定义的数值检查该值。如果服务器上的负载值高于预定值,则报错。出于某种原因,我在这里的 if 语句有问题,其中 BAIL 变量作为 LOAD 变量的值返回。
#!/bin/bash
set -a
load=$(uptime | grep -ohe 'load average[s:][: ].*' | awk -F ',' '{ print }' | 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。
对于bc
版本1.07.1,比较的语法是
bail=$(echo "$load > $maxload" | bc )
此外,缺少一个 echo
maxload=$(echo "1.00" | bc -l)
我正在尝试编写一个 bash 脚本来解析服务器上的负载,并根据预定义的数值检查该值。如果服务器上的负载值高于预定值,则报错。出于某种原因,我在这里的 if 语句有问题,其中 BAIL 变量作为 LOAD 变量的值返回。
#!/bin/bash
set -a
load=$(uptime | grep -ohe 'load average[s:][: ].*' | awk -F ',' '{ print }' | 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。
对于bc
版本1.07.1,比较的语法是
bail=$(echo "$load > $maxload" | bc )
此外,缺少一个 echo
maxload=$(echo "1.00" | bc -l)