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