ステータスバー用のスクリプトを作成しましたdwm
。そのうちのいくつかは、システムの各コアの現在のCPU使用率を見つけることです。自分で方法を見つけましたが、その中のバグを修正するのに助けが必要です。これは注文です: top -bn 2 -d 0.5 | grep -F '%Cpu' | tail -n 4 | awk '{print $3}'
。これはtop
基本的に各コアを表示すると仮定します。top
を押して1
、W
現在の設定を.toprc
ホームフォルダのファイルに保存します。これtop
で、開くたびにすべてのコアが表示されます。前述のコマンドには、次の変数に割り当てると欠点があります。
CPU=$(top -bn 2 -d 0.5 | grep -F '%Cpu' | tail -n 4 | awk '{print $3}')
次に、次のように使用します。$CPU
ステータスバーに目的の出力が表示されますが、各CPUパーセントの間には2つのシンボルがあり、それらを合計します。どのように削除しますか?ここでは、文字列の代わりに配列を使用することに関連していますか?xsetroot
xsetroot -name "$CPU"
v
t
左側に質問がありますか?絵。
注文する:
top -bn 2 -d 0.5 | grep -F '%Cpu' | tail -n 4 | awk '{print $3}'
出力例:
14.3
12.0
8.0
10.0
このスクリプトを使用するすべての人のための注意:コアのCPU使用率100%
このコマンドによってアレイ出力に達すると、現在負荷がある列がある列から3
別の列に移動されます2
。したがって、列の出力がawk '{print $3}'
表示されます。よろしければ、ただ残してください。そうでない場合は、印刷バーを使用することもできます。それではそうします。これらのトラップをすべて回避する解決策は次のとおりです。us,
3
awk
2
:
top -bn 2 | grep -F '%Cpu' | tail -n 4 | gawk '{print $2 $3}' | tr -s '\n\:\,[:alpha:]' ' '
答え1
私にとって、値の間の「もの」は、次を使用するときに取得できる改行文字(8進文字コード12)の視覚的表現のようです。
echo -e 'a\012b'
次のように出力をパイピングしてみることができますtr '\n' ' '
。
echo -e 'a\012b' | tr '\n' ' '