一、命令简介
bc是一种支持任意精度数字的语言,支持语句的交互式执行。在语法上与C编程语言有一些相似之处。通过命令行选项可以使用标准数学库。如果需要,将在处理任何文件之前定义数学库。bc首先按照列出的顺序处理命令行上列出的所有文件中的代码。处理完所有文件后,bc从标准输入中读取。所有代码在读取时执行。如果文件中包含停止处理器的命令,bc将永远不会从标准输入中读取。支持的运算包括:
- + 加法
- - 减法
- * 乘法
- / 除法
- ^ 指数
- % 余数
二、使用示例
1、安装命令
[root@s141 ~]# yum install -y bc
[root@s141 ~]# which bc
/usr/bin/bc
2、查看版本
[root@s141 ~]# bc -v
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
3、获取帮助
[root@s141 ~]# bc --help
4、交互式执行计算
5、交互式时通过quit退出
[root@s141 ~]# 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’.
100-30
70
quit
6、与管道符结合进行计算
[root@s141 ~]# echo “sqrt(100)” |bc
10
[root@s141 ~]# echo “3^3” |bc
27
7、不要打印初始横幅提示信息
[root@s141 ~]# bc -q
100-40
60
quit
8、计算文件中算式
9、进制转换
#十进制转二进制
[root@s141 ~]# echo “obase=2;254” |bc
11111110
#十进制转十六进制
[root@s141 ~]# echo “obase=16;254” |bc
FE
#十进制转八进制
[root@s141 ~]# echo “obase=8;254” |bc
376
#十六进制转10进制
[root@s141 ~]# echo “obase=10;ibase=16;FF” |bc
255
#二进制转10进制
[root@s141 ~]# echo “obase=10;ibase=2;1100” |bc
12
10、使用预定义数学例程
#小数点后保留4位
[root@s141 ~]# bc -q
100 / 3
33
scale = 4
100 /3
33.3333
quit
[root@s141 ~]# echo “scale=4;100/3” |bc
33.3333
(base) [root@sun-site ~]# echo “scale=10; 4*a(1)” | bc -l
3.1415926532
11、使用last计算
[root@s141 ~]# bc -q
a=3
b=4
a+b
7
c=100
c * last
700
quit
三、参数说明
1、使用语法
用法:bc [参数] [文件]
2、参数说明
参数 | 参数说明 |
---|---|
-h,–help | 打印此用法并退出 |
-i,–interactive | 强制交互模式 |
-l,–mathlib | 使用预定义的数学例程 |
-q,–quiet | 不要打印初始横幅 |
-s,–standard | 非标准bc构造是错误的 |
-w,–warn | 警告非标准bc构造 |
-v,–version | 打印版本信息并退出 |
3、特殊变量说明
- 1)浮点数精度变量,scale=10;设置之后的scale为10,默认为0(及整数除法会返回整数)
- 2)进制变量,obase=16;ibase=16;设置输入和输出都为16进制,默认值为10
注意:为10时可不设置ibaseobase的值,obase要尽量放在ibase前,因为ibase设置后,后面的数字都是以ibase的进制来换算的
3)last,是指上一次返回出来的数字
4)quit,退出计算