从 grep 变量中查找百分比

从 grep 变量中查找百分比

我想以百分比形式显示 CPU 负载的计算结果。

num2=$(uptime | grep "average:" | tr -d " " | cut -d ':' -f 5 | cut -d ',' -f 2)

percent=$((num2(*100)))
echo 'CPU percentage' $percent

我错过了什么吗?

答案1

您可以将您的计算通过管道传输percentbc

percent=$(echo "scale=0;$num2*100" | bc)

它会给你一个像“41.00”这样的数字,你可以用它把它从末尾剪掉

percent=${percent%.*}

答案2

你的num2价值将是这样的0.41bash只能进行整数计算,不能进行浮点数计算。这就是为什么我们会收到类似这样的错误消息

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}'

相关内容