#!/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 变量名 - 它们非正式地保留给系统变量。