Linux 上最好的命令行计算器Linux 上最好的命令行计算器Linux 上最好的命令行计算器Linux 上最好的命令行计算器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux 上最好的命令行计算器

每个现代 Linux 桌面发行版都附带一个默认的基于 GUI 的计算器应用程序。另一方面,如果您的工作空间充满了终端窗口,并且您希望在其中一个终端中快速处理一些数字,那么您可能正在寻找命令行计算器。在这一类别中,GNU bc(“基本计算器”的缩写)是难以击败的。虽然 Linux 上有许多可用的命令行计算器,但我认为 GNU bc 无疑是最强大和最有用的。

在 GNU 时代之前,bc 实际上是一种历史上著名的任意精度计算器语言,其首次实现可以追溯到 20 世纪 70 年代的旧 Unix 时代。最初,bc 是一种更为人所知的编程语言,其语法类似于 C 语言。随着时间的推移,最初的 bc 演变为 POSIX bc,最后演变为今天的 GNU bc。

GNU bc 的特性

今天的 GNU bc 是对 bc 早期实现的许多增强的结果,现在它已成为所有主要 GNU/Linux 发行版的标准。它支持具有任意精度数字的标准算术运算符,以及输入和输出的多个数字基数(例如二进制、十进制、十六进制)。

如果您熟悉C语言,您会看到bc中使用了相同或相似的数学运算符。一些受支持的运算符包括算术 (+、-、、/、%、++、--)、比较 (<、>、==、!=、<=、>=)、逻辑 (!、&&、||)、按位 (&、|、^、~、<<、>>)、复合赋值 (+=、-=、*=、/=、%=、&=、|=、^=、&&=、||=、<<=、>>=) 运算符。 bc 带有许多有用的内置函数,例如平方根、正弦、余弦、反正切、自然对数、指数等。

如何使用 GNU bc

作为命令行计算器,GNU bc 的可能用例几乎是无限的。在本教程中,我将介绍 bc 命令的一些流行功能。如需完整手册,请参阅官方来源。

除非您有预先编写的 bc 脚本,否则通常会在交互模式下运行 bc,其中任何以换行符结尾的键入语句或表达式都会被当场解释和执行。只需键入以下内容即可进入交互式 bc 会话。要退出会话,请输入“quit”并按 Enter。


$ bc

本教程其余部分中提供的示例应该在 bc 会话中键入。

类型表达式

要计算算术表达式,只需在闪烁的光标处键入表达式,然后按 ENTER。如果需要,您可以将中间结果存储到变量中,然后在其他表达式中访问该变量。

在给定会话中,bc 维护先前键入的行的无限历史记录。只需使用向上箭头键即可检索以前键入的行。如果您想限制历史记录中保留的行数,请将该行数分配给名为 history 的特殊变量。默认情况下,该变量设置为 -1,表示无限制。

开关输入/输出底座

通常,您希望键入输入表达式并以二进制或十六进制格式显示结果。为此,bc 允许您切换输入或输出数字的数字基数。输入和输出基数分别存储在ibase和obase中。这些特殊变量的默认值为 10,有效值为 2 到 16(如果是 obase,则为 BC_BASE_MAX 环境变量的值)。要切换数字基数,您只需更改 ibase 和 obase 的值即可。例如,以下是对两个十六进制/二进制数求和的示例:

请注意,此处我在 ibase=16 之前指定 obase=16,反之亦然。这是因为,如果我首先指定 ibase=16,后续的 obase=16 语句将被解释为将 16 进制的 16 分配给 obase(即十进制的 22),这不是我们想要的。

调整精度

在bc中,数字的精度存储在一个名为scale的特殊变量中。该变量表示小数点后的小数位数。默认情况下,scale 设置为 0,这意味着所有数字和结果都被截断/存储为整数。要调整默认精度,您只需更改 scale 变量的值即可。


scale=4

使用内置函数

除了简单的算术运算之外,GNU bc 通过外部数学库还提供了广泛的内置高级数学函数。要使用这些函数,请从命令行使用 -l 选项启动 bc。

这里展示了其中一些内置函数。

1. N 的平方根:


sqrt(N)

2. X 的正弦(X 以弧度为单位):


s(X)

3. X 的余弦(X 的单位是弧度):


c(X)

4. X 的反正切(返回值是弧度):


a(X)

5.X的自然对数:


l(X)

6.X的指数函数:


e(X)

作为语言的其他好处

作为一种成熟的计算器语言,GNU bc 支持简单语句(例如变量赋值、break、return)、复合语句(例如 if、while、for 循环)和自定义函数定义。我不会详细介绍这些功能,但您可以从官方手册中轻松了解如何使用它们。这是一个非常简单的函数定义示例:


define dummy(x){
return(x * x);
}
dummy(9)
81
dummy(4)
16

以非交互方式使用 GNU bc

到目前为止,我们已经在交互式会话中使用了 bc。然而,相当流行的 bc 用例实际上涉及在 shell 脚本中非交互地运行 bc。在这种情况下,您可以使用 echo 通过管道将输入发送到 bc。例如:


$ echo "40*5" | bc
$ echo "scale=4; 10/3" | bc
$ echo "obase=16; ibase=2; 11101101101100010" | bc

结论

总而言之,GNU bc 是一款功能强大、用途广泛的命令行计算器,真正符合您的期望。 bc 预装在所有现代 Linux 发行版上,可以使您无需离开终端即可轻松处理数字处理任务。此外,如果您的 shell 脚本需要浮点计算,脚本可以轻松调用 bc 来完成工作。总而言之,GNU bc 绝对应该出现在您的生产力工具集中。

©2015-2025 艾丽卡 support@alaica.com