我正在尝试使用tmux和简单的bash脚本在终端中获取非常基本的状态栏-因此窗口很小(高度为1或2行,宽度可能少于10个字符)。导致异常行为的命令是:echo "$(top -bn 1 | awk '/^%Cpu/{print $2}')%"基本上应该只是打印出类似的东西1.8%。在普通大小的终端(带或不带tmux)中,它可以正常工作,但是当我缩小终端时,有时它会切断数字并仅显示%。这似乎不太奇怪,但是当我在此命令周围放一些文字时,例如echo "ab$(top -bn 1 | awk '/^%Cpu/{print $2}'cd"abcd缩小终端时得到输出。因此,这仅影响$(...)被切除的零件的枯萎。另外,当我打印两行时:echo "$(top -bn 1 | awk '/^%Cpu/{print $2}'%"echo "20.5%"它可以20.5%很好地打印,甚至可以分成几行,例如20.5%而不是只打印其中的一部分。但是,第一行仅显示%没有任何数字。知道是什么原因造成的,以及如何显示数字?
1 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
默认情况下,top
即使在批处理模式下使用并且输出通过管道传输而不是转到终端时,也要检查终端大小并根据其调整输出。您可以使用该-w
选项来覆盖它。
echo "$(top -w 50 -bn 1 | awk '/^%Cpu/{print $2}')%"
- 1 回答
- 0 关注
- 238 浏览
添加回答
举报
0/150
提交
取消