1.命令作用
任意精度的计算器语言(An arbitrary precision calculator language);bc 是一种支持任意精度数字并能交互执行语句的语言;其语法与 C 编程语言有一些相似之处;通过命令行选项可以使用标准数学库。
2.命令语法
Usage: bc [options] [file ...]
3.参数详解
OPTION:
- -h --help,打印此用法并退出
- -i --interactive,强制交互模式
- -l --mathlib,使用标准数学库;如使用内置函数就需要该参数
- -q --quiet,不要打印初始的软件版本版权等信息
- -s --standard,对非标准BC结构视为错误
- -w --warn,对非标准bc结构发出警告
- -v --version,打印版本信息并退出
数字属性:
- 长度
- 精度
- .000001 的长度为 6,精度为 6
- 1935.000 的长度为 7,精度为 3
常用运算符:
- 加(+)、减(-)、乘(*)、除(/)、取余(%)、指数(^)
四个特殊变量:
- scale,定义了某些运算中小数点后数字的使用方式,默认值为0
- ibase,定义了输入数字的转换基数,默认值为10进制
- obase,定义了输出数字的转换基数,默认值为10进制
- last,last(一个扩展变量)是一个变量,其值为最后打印的数字
函数(需要加-l参数):
- s (x),sine正弦函数(x是弧度)
- c (x),cosine余弦函数(x是弧度)
- a (x),arctangent反正切函数(结构返回弧度)
- l (x),logarithm 自然对数函数
- e (x),e的x次方的指数函数
- j (n,x),整数阶n(x)的贝塞尔函数
特殊表达式:
- length(3.5),取长度,小数点不计,整数部分前的0不计
- scale(3.5),取小数点后位数
- sqrt(9),取根号
4.常用用例
4.1.交互模式执行
4.1.1.简单运算
# 直接后前4行是软件版本,版权,免费等信息;可以指定-q参数不输出该部分信息
# 交互模式需要Ctrl+c退出
[root@node4 ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1 # 简单加法运算
2
3-2 # 简单减法运算
1
3*4 # 简单乘法运算
12
10/5 # 简单除法运算
2
11%2 # 简单取余运算
1
2^3 # 简单指数运算
8
5/3 # 计算有小数位的,默认无小数位,即scale=0
1
scale=2; 5/3 # 指定小数位保留2位数值
1.66
4.1.2.函数运算
[root@node4 ~]# bc -q # 指定-q不输出软件版本版权等信息
s(60) # 函数运算报错,需要添加-l参数
Runtime error (func=(main), adr=6): Function s not defined.
^C
(interrupt) Exiting bc.
[root@node4 ~]# bc -q -l # 添加-l参数后,函数运算正常运行
s(60)
-.30481062110221670562
4.2.非交互式执行
4.2.1.将字符串传递给bc执行
1.使用echo向bc传递计算字符串
echo "5 + 3 * 2" | bc # 简单计算
echo "scale=2; 5/3" | bc -s # 保留两位小数
echo "obase=16; 255" | bc # 10进制转16进制
echo "ibase=2; obase=10; 1101" | bc # 2进制转10进制
echo "s(3.1415/2)" | bc -l # 正弦计算
2.使用变量
a=5; b=7
echo "$a * $b + 2" | bc
3.使用<<<给bc传递字符串
bc -w <<< "scale=3; 10/3"
4.2.2.读取文件字符计算
[root@node4 ~]# cat t.txt # 定义文件内容
3.14 * 5
scale=2; sqrt(100)
[root@node4 ~]# bc -q t.txt # 指定文件执行,执行后是交互模式,需要Ctrl+c退出
15.70
10.00
153

被折叠的 条评论
为什么被折叠?



