比较两个数字,但条件不能正常工作

时间:2017-02-28 06:05:18

标签: linux bash floating-point compare

我是bash脚本的新手。我正在制作一个脚本来计算CPU使用率。所以我正在做的是计算CPU使用率并与预定义值(即阈值)进行比较。但我的条件总是出错。请帮我纠正我的剧本。

#!/bin/bash
#checking the cpu usage
cpu_usage=$( mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }')
cpu_threshold=1.00
if [ $cpu_usage > $cpu_threshold ] ; then
echo "The CPU utilization is above threshold : $cpu_usage %" 
else
echo "The CPU utilization is below threshold : $cpu_usage %" 
fi

请在bash中检查上面的脚本,因为我已经尝试了很多方法,但是如果条件输出错误的话总是这样。

3 个答案:

答案 0 :(得分:2)

@Ankit:尝试:将if [ $cpu_usage > $cpu_threshold ]更改为if [[ $cpu_usage > $cpu_threshold ]]

答案 1 :(得分:0)

用它来比较两个浮点数

$cpu_usage'>'$cpu_threshold | bc -l

答案 2 :(得分:0)

以下是我的问题的正确和完整的答案。

  #! /bin/bash
    #checking the cpu usage
    cpu_usage=$( mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }')
    cpu_threshold=70
    echo $cpu_usage
    echo $cpu_threshold
    if [[ $cpu_usage > $cpu_threshold ]] ; then
    echo "The CPU utilization is above threshold : $cpu_usage %" 
    else
    echo "The CPU utilization is below threshold : $cpu_usage %" 
    fi