ベンチマーク スクリプトの場合、ちょっとした操作の直後に iowait % を抽出する必要があります。
今のところ、私が見つけた最良の方法はこれでした: IOWAIT=top -bn2 | awk '$1~/Cpu/ {print $6}' | sed -n '2p' | tr -d '%wa,'
正しい出力は 2.1 のようなものです:
まず、「-bn2」を正確に指定しなかった場合、理由はわかりませんが、キャプチャを 1 回だけ実行すると、常に 0.1% になります。そのため、キャプチャを 2 回行い、awk して iowait フィールドを取得し、2 行目を sed してから「%wa」を削除します。
参考までに、ここに出力がありますtop -bn2 | grep Cpu
Cpu(s): 2.8%us, 0.4%sy, 0.0%ni, 96.6%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st<br>
Cpu(s): 0.2%us, 2.9%sy, 0.0%ni, 87.1%id, 9.5%wa, 0.0%hi, 0.3%si, 0.0%st
私の問題は次のとおりです。100.0% (たとえばアイドル状態) で 1 つの列を取得すると、列番号がシフトされるため、awk が機能しなくなり、「0.0%hi」フィールドが取得されます。
私の質問は次のとおりです。
- awk に "%wa" を使用して列に移動するように指示する方法は?
誰かが私がやろうとしていることへの最善のアプローチを持っているなら、もちろん私は提案に非常にオープンです!
ありがとう