手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

bc(1)

名称

bc - 任意精度算术语言

用法概要

/usr/bin/bc [-c] [-l] [file]...
/usr/xpg6/bin/bc [-c] [-l] [file]...

描述

bc 实用程序实现了一个任意精度计算器。它接受来自任意给定文件的输入,然后从标准输入进行读取。如果 bc 的标准输入和标准输出连接到某个终端,则 bc 调用是交互式的,其行为约束如以下各节中所述。bc 处理一种类似于 C 语言的语言并且是桌面计算器程序 dc 的预处理器,该桌面计算器程序会自动调用 bc,除非指定了 –c 选项。在这种情况下,dc 输入被发送到标准输出。

用法

bc 程序的语法如下所示:

L

表示字母 az

E

表示一个表达式:一个(数学或逻辑)值、一个接受某个值的操作数,或计算结果为某个值的操作数和运算符的组合,

S

表示一个语句。

注释

括在 /**/ 中。

名称(操作数)

简单变量:L
数组元素:L [ E ](最多 BC_DIM_MAX 个维)。
单词 ibaseobase(限于 BC_BASE_MAX)和 scale(限于 BC_SCALE_MAX)。

其他运算符

带有符号和小数点(可选)的任意长度的数字。少于 BC_STRING_MAX 个字符的字符串,位于双引号 (") 之间。( E )

sqrt ( E )

平方根

length ( E )

有效小数位的位数。

scale ( E )

小数点右侧的位数。

L ( E , ... , E )

运算符

+ − * / % ^

% 是余数;^ 是幂)

++ −−

(前缀和后缀;应用于名称)

== <= >= != < >

= =+ =− =* =/ =% =^

语句

E
{ S ;. . . ; S }
if ( E ) S
while ( E ) S
for ( E ; E ; E ) S
null 语句
break
quit

.string

函数定义

define L ( L ,. . . , L ) {
auto L ,. . . , L
S ;. . .  S
return ( E )
}

–l 数学库中的函数

s(x)

正弦

c(x)

余弦

e(x)

指数

l(x)

对数

a(x)

余切

j(n,x)

贝塞尔函数

所有函数参数都是通过值传递的。

对于是表达式的语句,将输出值,除非主运算符是赋值运算符。可以使用分号或换行符分隔各个语句。对 scale 的赋值影响在以 dc 方式执行的算术运算中要保留的位数。对 ibaseobase 的赋值分别设置输入和输出数字基数。

同一个字母可以同时用作数组、函数和简单变量。所有变量对程序都是全局性的。在函数调用期间 auto 变量将入栈。当使用数组作为函数参数或将其定义为自动变量时,在数组名称后必须跟有空的方括号。

选项

支持下列操作数:

–c

仅进行编译。输出是发送到标准输出的 dc 命令。

/usr/bin/bc

–l

定义数学函数并将 scale 初始化为 20 而非缺省值 0。

/usr/xpg6/bin/bc

–l

定义数学函数并将 scale 初始化为 20 而非缺省值 0。所有数学结果都具有数量级 20

操作数

支持下列操作数:

file

包含 bc 程序语句的文本文件的路径名。在读取 file 的所有实例后,bc 将读取标准输入。

示例

示例 1 设置变量的精度

在 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。

退出状态

将返回以下退出值:

0

所有输入文件均已成功处理。

unspecified

出现错误。

文件

/usr/lib/lib.b

数学库

/usr/include/limits.h

定义 BC_ 参数

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

另请参见

dc(1)awk(1)attributes(5)environ(5)standards(5)

附注

bc 命令不能识别逻辑运算符 &&| |

for 语句必须具有所有三个表达式(E)。