扩展 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 还提供其他执行算术运算的方法。
日期:2020-07-15 11:16:39 来源:oir作者:oir