/usr/bin/bc [-c] [-l] [file]...
/usr/xpg6/bin/bc [-c] [-l] [file]...
bc 实用程序实现了一个任意精度计算器。它接受来自任意给定文件的输入,然后从标准输入进行读取。如果 bc 的标准输入和标准输出连接到某个终端,则 bc 调用是交互式的,其行为约束如以下各节中所述。bc 处理一种类似于 C 语言的语言并且是桌面计算器程序 dc 的预处理器,该桌面计算器程序会自动调用 bc,除非指定了 –c 选项。在这种情况下,dc 输入被发送到标准输出。
bc 程序的语法如下所示:
表示字母 a−z,
表示一个表达式:一个(数学或逻辑)值、一个接受某个值的操作数,或计算结果为某个值的操作数和运算符的组合,
表示一个语句。
括在 /* 和 */ 中。
|
带有符号和小数点(可选)的任意长度的数字。少于 BC_STRING_MAX 个字符的字符串,位于双引号 (") 之间。( E )
平方根
有效小数位的位数。
小数点右侧的位数。
(% 是余数;^ 是幂)
(前缀和后缀;应用于名称)
|
.string
|
正弦
余弦
指数
对数
余切
贝塞尔函数
所有函数参数都是通过值传递的。
对于是表达式的语句,将输出值,除非主运算符是赋值运算符。可以使用分号或换行符分隔各个语句。对 scale 的赋值影响在以 dc 方式执行的算术运算中要保留的位数。对 ibase 或 obase 的赋值分别设置输入和输出数字基数。
同一个字母可以同时用作数组、函数和简单变量。所有变量对程序都是全局性的。在函数调用期间 auto 变量将入栈。当使用数组作为函数参数或将其定义为自动变量时,在数组名称后必须跟有空的方括号。
支持下列操作数:
仅进行编译。输出是发送到标准输出的 dc 命令。
定义数学函数并将 scale 初始化为 20 而非缺省值 0。
定义数学函数并将 scale 初始化为 20 而非缺省值 0。所有数学结果都具有数量级 20。
支持下列操作数:
包含 bc 程序语句的文本文件的路径名。在读取 file 的所有实例后,bc 将读取标准输入。
在 shell 中,以下代码将 n 的前十位数的近似值赋予变量 x:
x=$(printf "%s\n" 'scale = 10; 104348/33215' | bc)示例 2 定义计算函数
定义一个函数来计算指数函数的近似值:
scale = 20 define e(x){ auto a, b, c, i, s a = 1 b = 1 s = 1 for(i=1; 1==1; i++){ a = a*x b = b*i c = a/b if(c == 0) return(s) s = s+c } }示例 3 输出函数的近似值
输出指数函数的前十个整数的近似值:
for(i=1; i<=10; i++) e(i)
或
for (i = 1; i <= 10; ++i) { e(i) }
有关影响 bc 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
将返回以下退出值:
所有输入文件均已成功处理。
出现错误。
数学库
定义 BC_ 参数
有关下列属性的说明,请参见 attributes(5):
|
dc(1)、awk(1)、attributes(5)、environ(5)、standards(5)
bc 命令不能识别逻辑运算符 && 和 | |。
for 语句必须具有所有三个表达式(E)。