如何在脚本中使用“bc”计算器

Linux程序bc可以用作方便的桌面计算器或数学脚本语言。 这和通过终端调用bc 命令一样简单。

除了bc实用程序外,Bash shell还提供了一些用于执行算术运算的其他方法。

注意: bc程序也被称为基本计算器或长凳计算器。

bc命令语法

bc命令的语法类似于C编程语言,支持各种运算符,如加法,减法,加或减等。

这些是bc命令可用的各种交换机:

有关如何使用基本计算器的更多详细信息,请参阅本bc命令手册。

bc命令示例

只需输入bc即可在终端中使用基本计算器,之后您可以键入常规数学表达式,如下所示:

4 + 3

...得到这样的结果:

7

重复执行一系列计算时,将bc计算器用作脚本的一部分是有意义的。 这种脚本的最简单形式如下所示:

#!/ bin / bash echo'6.5 / 2.7'| 公元前

第一行只是运行此脚本的可执行文件的路径。

第二行包含两个命令。 echo命令生成一个字符串,其中包含单引号中包含的数学表达式(本例中为6.5除以2.7)。 管道运算符(|)将此字符串作为参数传递给bc程序。 然后,bc程序的输出显示在命令行上。

为了执行此脚本,请打开一个终端窗口并导航到脚本所在的目录。 我们假定脚本文件被称为bc_script.sh 。 使用chmod命令确保文件可执行:

chmod 755 bc_script.sh

然后你会输入:

./bc_script.sh

结果如下:

2

为了显示3位小数,因为真实答案是2.407407 ...,请在由单引号分隔的字符串内使用缩放语句:

#!/ bin / bash echo'scale = 3; 6.5 / 2.7'| 公元前

为了更好的可读性,计算线可以在多行上重写。 为了将命令行分成多行,你可以在行尾加一个反斜杠:

echo'scale = 3; var1 = 6.5 / 2.7; var1'\ | 公元前

要在bc计算中包含命令行参数,必须将单引号更改为双引号,以便命令行参数符号由Bash shell解释:

echo“scale = 3; var1 = 6.5 / 2.7; var2 = 14 * var1; var2 * = $ 1; var2”\ | 公元前

第一个命令行参数使用变量“$ 1”访问,第二个参数使用“$ 2”等。

现在,您可以将自己的自定义算术函数写入单独的Bash脚本中,并从其他脚本中调用它们。

例如,如果script1包含:

#!/ bin / bash echo“scale = 3; var1 = 6.5 / 2.7; var2 = 14 * var1; var2 * = $ 1; var2”\ | 公元前

...和script2包含

#!/ bin / bash var0 =“100”echo“var0:$ var0”fun1 {echo“scale = 3; var1 = 10; var2 = var1 * $ var0; var2”\ | bc} fres = $(fun1)echo“fres:”$ fres var10 = $(./ script1 $ fres); 回声“var10:”$ var10;

...然后执行script2将使用脚本2中计算的变量$ fres作为参数调用script1。