扩展 bc 的性能

要显示三位小数,因为真正的答案是 2.407407...,请在由单引号分隔的字符串内使用 scale 语句:

#!/bin/bash
echo 'scale=3; 6.5/2.7' | bc

为了更好的可读性,计算行可以分成几行。
在行尾添加反斜杠:

echo 'scale=3; 
var1 = 6.5 / 2.7;
var1 ' \
| bc

在脚本中使用 bc

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

#!/bin/bash
echo '6.5 / 2.7' | bc

第一行是运行此脚本的可执行文件的路径。
在这种情况下,Bash 环境。

第二行包含两个命令。
echo 命令生成一个字符串,其中包含包含在单引号中的数学表达式(在本例中为 6.5 除以 2.7)。

管道运算符 (|) 将此字符串作为参数传递给 bc 程序。

bc 程序的输出然后显示在命令行上。

BC 命令示例

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

4+3

得到这样的结果:

7

将参数与 bc 一起使用

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

echo "scale=3; 
var1 = 6.5 / 2.7;
var2 = 14 * var1;
var2 *= var1;
var2 " \
| bc

第一个命令行参数使用变量 var1 访问,第二个参数使用 var2 。

例如,如果 script1 包含:

#!/bin/bash
echo "scale=3; 
var1 = 6.5 / 2.7;
var2 = 14 * var1;
var2 *= var1;
var2 " \
| bc

和 script2 包含:

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

然后执行 script2 将使用在 script2 中计算的变量 $fres 作为参数来调用 script1.

BC 命令语法

bc 命令的语法类似于 C 编程语言。

该命令支持多个开关:

  • -h , --help :打印此用法并退出。
  • -i , --interactive :强制交互模式。
  • -l , --mathlib :使用预定义的数学例程。
  • -q , --quiet :不打印初始横幅。
  • -s , --standard :非标准 bc 结构是错误的。
  • -w , --warn :警告非标准 bc 结构。
  • -v , --version :打印版本信息并退出。

查看 bc 的联机帮助页以了解命令用法的详细分类。

从 shell 脚本计算值

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

除了 bc 实用程序之外,大多数 shell 还提供其他执行算术运算的方法。

如何在脚本中使用 bc 计算器
日期:2020-07-15 11:16:39 来源:oir作者:oir