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

内置变量之 ibaseobase 进制转换

ibase 可以设定输入数字的进制,默认是十进制;obase 可以设定输出数字的进制,默认是十进制。

注意,obase 要尽量放在 ibase 前面,因为 ibase 设置后,后面的数字都是按照 ibase 的进制来换算的。

如果是与管道符结合起来使用,那么要这样:

内置变量之 last 利用最后一个结果

一行使用多个表达式

在一行中也可以使用多个表达式,之间用英文分号 ; 隔开即可。

在脚本中使用 bc

如果想要在 shell 脚本中使用 bc 命令。通常是用命令替换执行 bc 命令,然后将执行结果赋值给一个变量,如下格式:

# 语法
变量名=$(echo "选项;算式" | bc)

# 示例
num=$(echo "scale=4;10/3" | bc)
echo $num

参考资料:

以上是关于Linux命令之计算器bc的主要内容,如果未能解决你的问题,请参考以下文章

bc命令:打开Linux中的计算器

8linux-数字计算

Linux之bc命令

Linux中的一个命令行计算器bc简介

scratch加减法混合运算器 电子学会图形化编程scratch等级考试四级真题和答案解析2020-12

linux命令行计算器 bc命令用法