当前位置: 首页 > 科技观察

Toolbc-ACommandLineCalculator

时间:2023-03-14 13:45:51 科技观察

如果你需要一个图形化桌面环境下的计算器,你大概只需要一路点击就能找到一个计算器。例如,FedoraWorkstation已经包含一个名为Calculator的工具。它有几种不同的操作模式,例如,您可以执行复杂的数学运算或财务操作。但是,您知道命令行也提供了一个名为bc的类似工具吗?bc工具可以为您提供您期望从科学计算器、金融计算器或简单计算器获得的功能。此外,如果需要,可以从命令行编写脚本。这允许您在需要进行复杂数学运算时在shell脚本中使用它。因为bc也被其他系统软件使用,例如CUPS打印服务,它可能已经安装在您的Fedora系统上。您可以使用此命令进行检查:dnflistinstalledbc如果由于某种原因您没有在上述命令的输出中看到它,您可以使用此命令安装它:sudodnfinstalledbc用bc做一些简单的数学运算使用bc一种方法是输入它自己的壳。在那里你可以按行做很多计算。当您键入bc时,首先出现的是有关该程序的警告:$bcbc1.06.95Copyright1991-1994,1997,1998,2000,2004,2006FreeSoftwareFoundation,Inc.ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.Fordetailstype`warranty'。现在你可以在每一行中输入公式或命令:1+1bc将回答上面的计算公式:2在这里你还可以执行其他命令。您可以使用加法(+)、减法(-)、乘法(*)、除法(/)、括号、指数符号(^)等。请注意bc还遵守所有常规操作规则,例如操作顺序。您可以试试下面的例子:(4+7)*24+7*2要退出bc,您可以使用组合键Ctrl+D向bc发送一个“键入完成”信号。另一种使用bc的方法是使用echo命令来传递表达式或命令。下面的例子是计算器中的“Hello,world”例子,使用shell管道函数(|)将echo的输出转给bc:echo'1+1'|bc使用shell管道,可以发送多于对于一个操作,需要使用分号来分隔不同的操作。结果将在单独的行中返回。echo'1+1;2+2'|bcprecision在一些计算中,bc使用了精度的概念,即小数点后的位数。默认精度为0。除法运算始终使用精度集。所以,如果不设置精度,可能会带来意想不到的答案:echo'3/2'|bcecho'scale=3;3/2'|bc乘法使用了更复杂的精度选择机制:echo'3*2'|bcecho'3*2.0'|bc同时,加减法的相关操作类似:echo'7-4.15'|bcbc的另一个有用的特点是它可以使用十进制以外的数字其他计数系统.例如,您可以轻松地进行十六进制或二进制数学运算。您可以使用ibase和obase命令分别设置输入和输出的基本系统。要记住的是,一旦您使用ibase,您之后输入的任何数字都将被视为在新定义的基本系统中。要进行十六进制到十进制的转换或操作,您可以使用如下命令。请注意,大于9的十六进制数必须大写(A-F):echo'ibase=16;A42F'|bcecho'ibase=16;5F72+C39B'|bc要使结果为十六进制数,需要设置obase:echo'obase=16;ibase=16;5F72+C39B'|bc下面是个小技巧。如果您在shell中进行这些十六进制操作,您如何将输入恢复为十进制?答案是使用ibase命令,但你必须将它设置为相当于当前base中十进制的10。例如,如果ibase设置为十六进制,则需要输入:ibase=A执行上述命令后,输入的所有数字将变为十进制,这时您可以输入obase=10来重新设置输出的base系统。结论以上只是bc可以做什么的基础知识。它还允许您为一些复杂的操作和程序定义函数、变量和循环结构。您可以将这些程序保存为系统中的文本文件,以便在需要时使用它们。您还可以在线找到更多资源,其中提供了更多示例和其他库。快乐数数!