
我想以百分比形式显示 CPU 负载的计算结果。
num2=$(uptime | grep "average:" | tr -d " " | cut -d ':' -f 5 | cut -d ',' -f 2)
percent=$((num2(*100)))
echo 'CPU percentage' $percent
我错过了什么吗?
答案1
您可以将您的计算通过管道传输percent
到bc
。
percent=$(echo "scale=0;$num2*100" | bc)
它会给你一个像“41.00”这样的数字,你可以用它把它从末尾剪掉
percent=${percent%.*}
答案2
你的num2
价值将是这样的0.41
。 bash
只能进行整数计算,不能进行浮点数计算。这就是为什么我们会收到类似这样的错误消息
bash: 0.41 * 100 : syntax error: invalid arithmetic operator (error token is ".41 * 100 ")
在使用你的陈述时尝试删除点tr -d
。这相当于乘以 100。
答案3
您可以考虑一个简单的awk
命令:
uptime | awk '/average/ {printf "CPU percentage %5.2f", $11*100}'