2014-03-27 20 views
0

我在bash這條線,CPU使用率然後用它在一個算術表達式

CPU = `top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print $1}'

那工作,我想,如果我回聲,但在下一行所用時等式的一部分。

joulesFinal=$(($joules2*$cpu))

我得到的錯誤從系統

arithmetic expression: expecting EOF: "6*93.4"

幫助讚賞!

回答

0

Bash算術只是整數。它不會接受像93.4這樣的分數。 您需要通過bc管道表達式。

joulesFinal=`echo $joules2 * $cpu | bc` 
+0

或升級到[zsh](http://zsh.sf.net/):'echo $((4.2 + 6.7))'產生'10.9'。 ;) –