我正在使用Arch Linux中的dwm平铺窗口管理器。我想自定义顶部栏的显示。我已经添加了日期,内存,现在播放和正常运行时间的东西,但CPU显示器不能为我工作。当我尝试运行代码以显示终端中的CPU使用情况时,它工作得很好,但当我将它放在顶部栏中时,它就不起作用了。它根本不显示任何内容。代码如下:
while true; do
xsetroot -name "Memory $(free -m | grep '^Mem' | awk '{print "total: " $2 "MB used: " $3"MB"}') | CPU $(top -n 1 | grep '^Cpu' | tr -d 'usy,' | awk '{print "user " $2 ", sys " $3}') | Uptime: $(uptime | awk '{print $3}' | tr -d ',') | Now playing: $(ncmpcpp --now-playing | tr -d '(:[:digit:])') | $( date +"%F %R" )"
sleep 20s
done &我所说的部分是在"CPU“字符串之后。代码在我的.xinitrc中,正如我所说的,除了CPU display之外,一切都工作得很好。
发布于 2011-06-03 21:57:36
您可以通过使用批处理模式的标志-b执行top来修复此问题。只有在这种模式下,您才能将输出作为普通文本发送到其他程序。所以这个循环将(希望)完成这项工作:
while true; do
xsetroot -name "Memory $(free -m | grep '^Mem' | awk '{print "total: " $2 "MB used: " $3"MB"}') | CPU $(top -bn 1 | grep '^Cpu' | tr -d 'usy,' | awk '{print "user " $2 ", sys " $3}') | Uptime: $(uptime | awk '{print $3}' | tr -d ',') | Now playing: $(ncmpcpp --now-playing | tr -d '(:[:digit:])') | $( date +"%F %R" )"
sleep 20s
done &https://stackoverflow.com/questions/5051040
复制相似问题