要求输出小数点前后2位数字

要求输出小数点前后2位数字
#!/bin/bash
CPU=$(top -bn1 | grep "Cpu(s)" |  sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | bc -l ) 
USES=$(echo "100 - $CPU"|bc -l) 
FINAL="$USES% CPU"
echo "$FINAL"

这是我编写的用于计算 CPU 使用率的脚本,它给出了它应该提供的内容,但是当我在“kargos”中运行此命令时,KDE 小部件会将命令的输出显示为小部件。每次其输出从 1.2% 变为 11.4% 时,它都会导致所有其他小部件移动,因为现在小数点的左侧添加了一位数字。因此,我希望即使我的 CPU 利用率为 2.4%,它也应该输出 02.4%,如果 CPU 利用率为 11.4%,它应该只输出 11.4%。

答案1

如果您想控制输出格式,请使用 shell 的内置printf函数,而不是:echo

printf '%04.1f%% CPU\n' "$USES"

前任。

$ printf '%04.1f%% CPU\n' 11
11.0% CPU

$ printf '%04.1f%% CPU\n' 9
09.0% CPU

顺便说一句,建议避免ALLCAPS使用您自己的 shell 变量名 - 它们非正式地保留给系统变量。

相关内容