Question

I have this line in bash,

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

Thats working as I want it if I echo it but when used in the next line as part of a equation.

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

I get the error from system

arithmetic expression: expecting EOF: "6*93.4"

Help appreciated!

Was it helpful?

Solution

Bash arithmetic is integer only. It won't accept fractional numbers like 93.4. You need to pipe the expression through bc.

joulesFinal=`echo $joules2 * $cpu | bc`
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top