bc:命令行计算器

如果您运行图形桌面环境,您可能会在需要时指向并单击计算器。 这 Fedora 工作站, 为了 example包括 计算器 工具。 它具有几种不同的操作模式,可让您执行以下操作: example,复杂的数学或财务计算。 但是你知道命令行也提供了一个类似的计算器,叫做 bc 吗?

bc 实用程序为您提供您对科学、财务甚至简单计算器的一切期望。 更重要的是,如果需要,它可以从命令行编写脚本。 这允许您在 shell 脚本中使用它,以防您需要进行更复杂的数学运算。

因为 bc 被其他一些系统软件使用,比如 CUPS 打印服务,它可能安装在您的 Fedora 系统已经。 您可以使用以下命令进行检查:

dnf list installed bc

如果由于某种原因看不到它,可以使用以下命令安装包:

sudo dnf install bc

用 bc 做简单的数学运算

使用 bc 的一种方法是进入计算器自己的 shell。 在那里您可以连续运行许多计算。 当你进入时,首先出现的是一个关于程序的通知:

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.

现在您可以输入计算或命令,每行一个:

1+1

计算器很有帮助地回答:

2

您可以在此处执行其他命令。 您可以使用加法 (+)、减法 (-)、乘法

(4+7)*2
4+7*2

、除法 (/)、括号、指数 (^) 等。 请注意,计算器尊重所有预期的约定,例如操作顺序。 试试这些例子:

要退出,请使用组合键 Ctrl+D 发送“输入结束”信号。

echo '1+1' | bc

另一种方法是使用 echo 命令发送计算或命令。 下面是“Hello, world”的计算器等价物,它使用 shell 的管道函数 (|) 将输出从 echo 发送到 bc:

echo '1+1; 2+2' | bc

您可以使用 shell 管道发送多个计算,并使用分号分隔条目。 结果在不同的行上返回。

规模

echo '3/2' | bc
echo 'scale=3; 3/2' | bc

bc 计算器在某些计算中使用比例的概念,或小数点后的位数。 默认比例为 0。除法运算始终使用比例设置。 所以如果你不设置规模,你可能会得到意想不到的答案:

echo '3*2' | bc
echo '3*2.0' | bc

乘法使用更复杂的比例决策:

echo '7-4.15' | bc

同时,加法和减法更符合预期:

其他基数系统

另一个有用的功能是能够使用以 10 为底的数字系统(十进制)。 例如,您可以轻松地进行十六进制或二进制数学运算。 使用 ibase 和 obase 命令在 base-2 和 base-16 之间设置输入和输出基本系统。 请记住,一旦您使用 ibase,您输入的任何数字都应该在新声明的基数中。

echo 'ibase=16; A42F' | bc
echo 'ibase=16; 5F72+C39B' | bc

要进行十六进制到十进制的转换或数学运算,您可以使用这样的命令。 请注意,9 以上的十六进制数字必须大写(AF):

echo 'obase=16; ibase=16; 5F72+C39B' | bc

要获得十六进制的结果,还要设置 obase: 不过,这是一个技巧。 如果您在 shell 中进行这些计算,您如何切换回以 10 为底的输入? 答案是使用 ibase,但必须在 当前的

ibase=A

输入基础。 例如,如果 ibase 设置为十六进制,请输入:

完成此操作后,所有输入数字现在再次变为十进制,因此您可以输入 obase=10 来重置输出基本系统。

结论 这只是 bc 可以做的事情的开始。 它还允许您为复杂的计算和程序定义函数、变量和循环。 您可以将这些程序保存为系统上的文本文件,以便在需要时运行。 你可以找到无数 网络资源

提供示例和附加功能库。 快乐计算!