默认情况下,几乎所有符合 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 命令执行它,而不是每次都键入表达式。

发表评论