Linux命令之bc命令

一、命令简介

  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,退出计算

Guess you like

Origin blog.csdn.net/carefree2005/article/details/121424860