それで、コマンド「ps u」に従って、合計でどれだけのCPUが使用されているかを把握する必要があるbashスクリプトを書いています。私は awk を次のように使用しようとしています:
TOTAL_CPU=$(ps u | awk '{sum = sum + $3}; END {print sum}')
コマンド「ps u」からの典型的な出力には 11 列があり、3 番目は CPU 使用率です。
問題は、これが正常に機能していないことです。CPU 値に小数がある場合、次のようなエラーが発生します。
syntax error: invalid arithmetic operator (error token is ".x")
x は、合計後の「残りの」小数です。たとえば、値が「1.4」と「8.7」の場合、合計は「10.1」になるため、エラーは次のようになります。
syntax error: invalid arithmetic operator (error token is ".1")
どうすれば必要なことを行うことができますか? 小数が切り捨てられても問題ありません。多くの精度は必要ありません。
編集:投稿編集者は、私が最初に書いたものを変更しました
EDIT2: 問題が解決しました! awk のせいではありません。このコード行は別の場所に隠れていたことが判明しました。
declare -i TOTAL_CPU
そのため、bash は、整数値のみを含むと予想される変数に「3.4」のような値を割り当てようとしていました。誰かが後でGoogle経由でこの投稿を見つけた場合に備えて、これをここに置きます!