我一直在玩 bashrc,我一直想看到的一件事是我的 cpu 使用百分比。我决定在我的 PS1 中设置这些数据。问题是要准确估计我的 CPU 使用率,我需要执行需要等待至少 0.5 秒的操作。
结果,我的新命令行只显示在 CPU 计算结束时,即 0.5 秒后,这实在是不能接受。为了解决这个问题,我认为我可以使用一个线程来进行 CPU 计算并只在最后显示它,但我不知道该怎么做。
问题之一是我在 CPU 百分比之后显示其他信息,所以我不知道是否有可能延迟 CPU 显示同时仍显示命令行的其余部分。我想也许我可以显示一个临时字符串??.??
,然后用实际值替换它,但我不知道该怎么做,因为如果我快速输入命令,那么它的位置??.??
可能会改变(例如,在 a 中输入 ls 5 次排非常快)。
也许对我的问题有更简单的解决方案,例如以其他方式计算 CPU 百分比?
我的 CPU 百分比计算功能:
function cpuf(){
NonIdle=0;Idle=0;Total=0;TotalD=0;Idled=0
NonIdle=$((`cat /proc/stat | awk '/^cpu / {print$2+$3+$4+$7+$8+$9}'` - $NonIdle))
Idle=$((`cat /proc/stat | awk '/^cpu / {print$5+$6}'` - $Idle))
sleep 0.5
NonIdle=$((`cat /proc/stat | awk '/^cpu / {print$2+$3+$4+$7+$8+$9}'` - $NonIdle))
Idle=$((`cat /proc/stat | awk '/^cpu / {print$5+$6}'` - $Idle))
Total=$((Idle+NonIdle))
CPU=$(((Total-Idle)/Total))
echo `echo "scale=2;($Total*100-$Idle*100)/$Total" | bc -l`
}
我如何在 bashrc 中调用它:
alias cpu="cpuf"
PS1+="(\[${MAGENTA}\]CPU $(cpu)%"