所以我寫了一個bash腳本,它必須根據命令「ps u」計算出總共使用了多少CPU。我試圖使用awk,如下所示: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
所以慶典試圖像「3.4」的值分配給預計將只包含整數值的變量。我把這個放在這裏,以防有人通過以後通過谷歌找到這篇文章!
這適用於我在bash中的命令行和腳本。也許你可以發佈你的完整腳本。可能是這個命令以外的其他問題。 – ghoti