默认情况下,几乎所有符合 POSIX 的操作系统都带有几十年前的 GNU bc 实用程序。 GNU bc(Basic Calculator)是一种任意精度的数学脚本语言。
Bc 的语法类似于 C 编程语言。 不仅仅是语法,Bc 还提供您在所有其他编程语言中都能找到的功能。

Basic Calculator (Bc)
例如,使用 if/else 的控制语句、使用 for 或 while 循环的迭代语句、数学函数、条件语句以及不同类型的运算符(如算术、逻辑和赋值)。
您可以使用 bc 实用程序使用 echo 命令在您的 shell 脚本中执行基本和高级数学计算。

在 shell 脚本中使用 bc
bc中的交互模式
有趣的是,basic calculator还提供了一个交互式的mathematical shell来执行操作。只需在终端中输入’ bc ‘,就可以进入交互模式,并测试所有可用的函数和表达式。

Basic calculator 交互模式
使用 mathlib 的高级 Bc 函数
为了使用正弦、余弦和对数函数进行高级数学计算,bc 提供了一个标准数学库。 可以通过使用命令行选项 –mathlib 或 -l 和 bc 加载它来使用它。
目前,mathlib 支持以下功能:
- s (x) 为正弦
- c (x) 为余弦
- a (x) 为反正切
- l (x) 为自然对数
- e (x) 为指数函数e^x
- j (n,x) 对于 x 的整数阶 n 的贝塞尔函数
- sqrt(x) 为 平方根

basic calculator 内置函数
此外,mathlib 还支持以下特殊函数:
- length(x) 为数列的长度
- read() 从标准输入中读取数字
- scale(expression) 对于表达式中小数点后的位数
- ibase 和 obase 用于输入和输出数字的进制转化
- last(扩展名)保存最后打印的数字的值
自定义Bc函数
随着内置的功能,基本计算器还允许您创建自己的功能,根据您的需要。要创建一个自定义函数,你需要用define关键字开始,语法如下:
define function_name ( parameters ) {
statement...
return statement;
}

定义自己的 bc 函数
使用 Bc 将二进制转换为十进制和十进制转换为二进制
使用 ibase 和 obase 变量,您还可以将二进制转换为十进制,反之亦然。
│~/www.linuxmi.com
└─> echo ‘ibase=2;obase=A;11’ | bc -l
3
┌───────────────────>
│~/www.linuxmi.com
└─> echo ‘ibase=2;obase=8;10’ | bc -l
2

将二进制转换为十进制
┌───────────────────>
│~/www.linuxmi.com
└─> echo ‘ibase=10;obase=2;3’ | bc
11

将十进制转换为二进制
从文件中获取输入

从文件中获取输入
您也可以将所有数学表达式放在一个文件中并使用 bc 命令执行它,而不是每次都键入表达式。