我正在嘗試使用tmux和簡單的bash腳本在終端中獲取非?;镜臓顟B欄-因此窗口很小(高度為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 關注
- 269 瀏覽
添加回答
舉報
0/150
提交
取消