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