Linux命令之计算器bc
Posted 二木成林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令之计算器bc相关的知识,希望对你有一定的参考价值。
概述
bc
命令的全称是Binary Calculator
,该命令支持任意精度的运算,并且是在交互执行的情况下。该命令能够很方便的进行浮点数运算和整数运算。支持的常见运算有:
+
:加法运算。如:1+2=3
。-
:减法运算。如:3-2=1
。*
:乘法运算。如:3*4=12
。/
:除法运算。如:10/2=5
。^
:指数运算。如:2^3=8
。%
:取余运算。如:10%3=1
。
语法
bc
命令的基本格式:bc [选项] [参数]
。
其中常用选项如下表:
选项 | 说明 |
---|---|
-h, --help | 显示命令的帮助信息 |
-i, --interactive | 强制进入交互模式 |
-l, --mathlib | 定义使用标准的数学函数库 |
-q, --quiet | 不打印正常的初始化环境信息 |
-s, --standard | 非标准bc构造是错误的 |
-w, --warn | 警告非标准bc构造 |
-v, --version | 查看当前命令的版本信息 |
参数指的是文件,包含计算任务的文件。
使用
安装 bc
命令
如果当前系统不支持 bc
命令,如提示 -bash: bc: command not found
:
那么就需要安装该命令,如果是 CentOS 系统则可以通过如下命令进行安装:
yum -y install bc
从终端进入 bc
从终端进入 bc
的交互式环境,输入如下命令即可:
bc
在交互式环境下使用 bc
在交互式环境下输入数学表达式,按下回车键就会显示结果。
支持变量
在 bc
交互式环境中也支持变量。定义变量的基本格式是:
变量名=变量值
支持函数
在 bc
交互式环境中也支持自定义函数及编程中的循环结构、分支结构等,语法类似。定义函数的基本格式是:
# 定义函数
define 函数名([参数列表])
函数体
# 调用函数
函数名[参数列表])
交互式时通过 quit
退出
如果在交互式环境中想要退出,就可以输入如下命令:
quit
不打印初始环境信息
如果想要不打印如下红框内的内容,可以执行如下命令进入交互式环境:
bc -q
与管道符结合进行计算
可以用 echo
命令将数学表达式通过管道符传递给 bc
命令,例如:
echo "数学表达式" | bc
计算文件中的算式
可以将待计算的数学表达式写在一个文件中,每一行写一个,然后通过如下命令来调用执行:
bc -q 算式文件路径
注意在文件的最后一行添加退出命令 quit
,否则会停在交互式环境中。
内置变量之 scale
设置小数位数
变量名 | 作 用 |
---|---|
scale | 指定精度,也即小数点后的位数;默认为 0,也即不使用小数部分。 |
ibase | 指定输入的数字的进制,默认为十进制。 |
obase | 指定输出的数字的进制,默认为十进制。 |
last 或者 . | 表示最近打印的数字 |
如图,如果不指定 scale
变量的值,则默认是 0,即没有小数点后面的内容。如果指定了 scale
,则会保留指定位数的小数部分。
如果要使用与管道符结合的方式,那么可以这样写:
echo "scale=小数位数;算式" | bc
内置变量之 ibase
和 obase
进制转换
ibase
可以设定输入数字的进制,默认是十进制;obase
可以设定输出数字的进制,默认是十进制。
注意,obase
要尽量放在 ibase
前面,因为 ibase
设置后,后面的数字都是按照 ibase
的进制来换算的。
如果是与管道符结合起来使用,那么要这样:
内置变量之 last
利用最后一个结果
一行使用多个表达式
在一行中也可以使用多个表达式,之间用英文分号 ;
隔开即可。
在脚本中使用 bc
如果想要在 shell 脚本中使用 bc
命令。通常是用命令替换执行 bc
命令,然后将执行结果赋值给一个变量,如下格式:
# 语法
变量名=$(echo "选项;算式" | bc)
# 示例
num=$(echo "scale=4;10/3" | bc)
echo $num
参考资料:
以上是关于Linux命令之计算器bc的主要内容,如果未能解决你的问题,请参考以下文章