Shell本身不支持浮点数运算,(())之类的数学运算符只能进行整数运算。要想在shell中运算浮点数,只能借助于bc, Awk或者Perl。 如

a=0.1
b=0.2
c=$(echo "$a+$b" | bc -l)

 

或者

perl -e "print STDOUT $a + $b;"

 

 

需要注意的是,如果数学表达式中有负数,则必须确保运算符(+ - * /)与其前后的表达式之间至少有一空格。如:

[bonn@bonn Downloads]$ echo $a $b
-0.1 -0.2
[bonn@bonn Downloads]$ echo "$a - $b" | bc -l
.1
[bonn@bonn Downloads]$ perl -e "print STDOUT $a - $b;"
0.1