bash内置了对整数四则运算的支持,但是并不支持浮点运算
bc命令是一种支持任意精度的交互执行的计算器语言,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下
在bc工作环境下,可以使用以下计算符号:
+ 加法
- 减法
* 乘法
/ 除法
^ 指数
% 余数
seq 10;seq 1 10;seq 1 1 10
cat << seq 10 >> 123
其中,在做“除法计算”或“余数计算”时,可以使用scale指定小数点之后的位数(默认为0,即整数)
1、bash
例子1:a=2;b=3 echo $(($a+$b)) #结果为5
2、bc quit
例子2:a=2;b=3 bc <<< 2*3(或者bc <<< $a*$b) #结果为6
例子3: bc进入交互模式计算:也可以一行输入多个计算,用逗号;相隔
例子4: 也可以不进行交互而直接计算出结果 echo "(6+3)*2" |bc echo 15/4 |bc echo "scale=2;15/4" |bc echo "3+4;5*2;5^2;18/4" |bc echo $a+$b |bc
例子5:bc后可以接文件名
cat calc.txt
20+89
56-17
34*45
bc calc.txt
109
39
1530
例子6:也可以使用HERE 命令
bc << HERE
> 30+56
> 30-14
> 30*5
HERE
86
16
150
3、awk
awk在处理文件的时,可以进行运算,那当然也可以单用来计算了
awk ‘BEGIN{a=(3+2)*2;print a}‘
awk ‘BEGIN{a=(3+2)*2;b=(5+8)*10/5;print a,b}‘
awk ‘BEGIN{a=(3+2)*2;b=(5+8)*10/5;print 2a,3b}‘