概述
bc 命令的全称是Binary Calculator,该命令支持任意精度的运算,并且是在交互执行的情况下。该命令能够很方便的进行浮点数运算和整数运算。支持的常见运算有:
+:加法运算。如:1+2=3。-:减法运算。如:3-2=1。*:乘法运算。如:3*4=12。/:除法运算。如:10/2=5。^:指数运算。如:2^3=8。%:取余运算。如:10%3=1。

语法
bc 命令的基本格式:bc [选项] [参数]。
其中常用选项如下表:
| 选项 | 说明 |
|---|---|
| -h, --help | 显示命令的帮助信息 |
| -i, --interactive | 强制进入交互模式 |
| -l, --mathlib | 定义使用标准的数学函数库 |
| -q, --quiet | 不打印正常的初始化环境信息 |
| -s, --standard | 非标准bc构造是错误的 |
| -w, --warn | 警告非标准bc构造 |
| -v, --version | 查看当前命令的版本信息 |
参数指的是文件,包含计算任务的文件。
使用
安装 bc 命令
如果当前系统不支持 bc 命令,如提示 -bash: bc: command not found:

那么就需要安装该命令,如果是 CentOS 系统则可以通过如下命令进行安装:
yum -y install bc

从终端进入 bc
从终端进入 bc 的交互式环境,输入如下命令即可:
bc

在交互式环境下使用 bc
在交互式环境下输入数学表达式,按下回车键就会显示结果。

支持变量
在 bc 交互式环境中也支持变量。定义变量的基本格式是:
变量名=变量值

支持函数
在 bc 交互式环境中也支持自定义函数及编程中的循环结构、分支结构等,语法类似。定义函数的基本格式是:
# 定义函数
define 函数名([参数列表]) {
函数体
}
# 调用函数
函数名[参数列表])

交互式时通过 quit 退出
如果在交互式环境中想要退出,就可以输入如下命令:
quit

不打印初始环境信息
如果想要不打印如下红框内的内容,可以执行如下命令进入交互式环境:
bc -q

与管道符结合进行计算
可以用 echo 命令将数学表达式通过管道符传递给 bc 命令,例如:
echo "数学表达式" | bc

计算文件中的算式
可以将待计算的数学表达式写在一个文件中,每一行写一个,然后通过如下命令来调用执行:
bc -q 算式文件路径

注意在文件的最后一行添加退出命令 quit,否则会停在交互式环境中。
内置变量之 scale 设置小数位数
| 变量名 | 作 用 |
|---|---|
| scale | 指定精度,也即小数点后的位数;默认为 0,也即不使用小数部分。 |
| ibase | 指定输入的数字的进制,默认为十进制。 |
| obase | 指定输出的数字的进制,默认为十进制。 |
| last 或者 . | 表示最近打印的数字 |

如图,如果不指定 scale 变量的值,则默认是 0,即没有小数点后面的内容。如果指定了 scale,则会保留指定位数的小数部分。
如果要使用与管道符结合的方式,那么可以这样写:
echo "scale=小数位数;算式" | bc

内置变量之 ibase 和 obase 进制转换
ibase 可以设定输入数字的进制,默认是十进制;obase 可以设定输出数字的进制,默认是十进制。

注意,obase 要尽量放在 ibase 前面,因为 ibase 设置后,后面的数字都是按照 ibase 的进制来换算的。
如果是与管道符结合起来使用,那么要这样:

内置变量之 last 利用最后一个结果

一行使用多个表达式
在一行中也可以使用多个表达式,之间用英文分号 ; 隔开即可。

在脚本中使用 bc
如果想要在 shell 脚本中使用 bc 命令。通常是用命令替换执行 bc 命令,然后将执行结果赋值给一个变量,如下格式:
# 语法
变量名=$(echo "选项;算式" | bc)
# 示例
num=$(echo "scale=4;10/3" | bc)
echo $num
参考资料:
276

被折叠的 条评论
为什么被折叠?



