bc的简单用法


bc是Linux内置中的计算器,能够处理浮点数的计算,看下面的应用例子。

[root@node2 ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
3*5
15
3.5/6
0
scale=4
3.5/6
.5833
quit
[root@node2 ~]#

浮点运算是由一个内建的成为scale的变量控制的,默认是0。可以从上面的例子看出,当不声明scale时,3.5/6的输出是0,当声明scale=4时,3.5/6的输出时0.5833


bc在脚本中的运用


当在脚本中要处理浮点数计算时,就可以使用bc计算器,先看下面的例子

[root@node2 tmp]# cat bc.sh
#!/bin/bash
#
num1=`echo "scale=3; 4.3/7" | bc`
echo $num1
[root@node2 tmp]# ./bc.sh
.614

当碰到较短的运算时,就可以使用这种方法

variable=`echo "options; expression" | bc`


但是如果你计算较为复杂的话,在同一个命令中一次性列出多个

表达式会比较麻烦。这时,就可以bc命令的输入重定向了。

使用内联输入重定向:

variable=`bc << EOF
options
statements
expressions
EOF
`

先看看下面的例子

[root@node2 tmp]# cat bc.sh
#!/bin/bash
#
num1=14.5
num2=5
num3=32.4
num4=`bc << EOF
scale=4
a=($num1 / $num2)
b=($num3 / $num2)
a + b
EOF
`
echo $num4
[root@node2 tmp]# ./bc.sh
9.3800

要注意的是在bash计算器中创建的变量a和b在shell脚本中是不能使用的。