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

假如你在一个图形桌面环境中需要一个计算器时,你可能只需要一路进行点击便可以找到一个计算器。例如,Fedora 工作站中就已经包含了一个名为 Calculator 的工具。它有着几种不同的操作模式,例如,你可以进行复杂的数学运算或者金融运算。但是,你知道吗,命令行也提供了一个与之相似的名为 bc 的工具?

bc 工具可以为你提供的功能可以满足你对科学计算器、金融计算器或者是简单计算器的期望。另外,假如需要的话,它还可以从命令行中被脚本化。这使得当你需要做复杂的数学运算时,你可以在 shell 脚本中使用它。

因为 bc 也被用于其他的系统软件,例如 CUPS 打印服务,所以它可能已经在你的 Fedora 系统中被安装了。你可以使用下面这个命令来进行检查:

dnf list installed bc

假如因为某些原因你没有在上面命令的输出中看到它,你可以使用下面的这个命令来安装它:

sudo dnf install bc

用 bc 做一些简单的数学运算

使用 bc 的一种方式是进入它自己的 shell。在那里你可以按行进行许多次计算。当你键入 bc 后,首先出现的是有关这个程序的警告:

$ 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

bc 会回答上面计算式的答案是:

2

在这里你还可以执行其他的命令。你可以使用 加(+)、减(-)、乘(*)、除(/)、圆括号、指数符号(^) 等等。请注意 bc 同样也遵循所有约定俗成的运算规则,例如运算的先后顺序。你可以试试下面的例子:

(4+7)*2

4+7*2

若要退出 bc 可以通过按键组合 Ctrl+D 来发送 “输入结束”信号给 bc 。

使用 bc 的另一种方式是使用 echo 命令来传递运算式或命令。下面这个示例就是计算器中的 “Hello, world” 例子,使用 shell 的管道函数(|) 来将 echo 的输出传入 bc 中:

echo ‘1+1‘ | bc

使用 shell 的管道,你可以发送不止一个运算操作,你需要使用分号来分隔不同的运算。结果将在不同的行中返回。

echo ‘1+1; 2+2‘ | bc

 

精度

在某些计算中,bc 会使用精度的概念,即小数点后面的数字位数。默认的精度是 0。除法操作总是使用精度的设定。所以,如果你没有设置精度,有可能会带来意想不到的答案:

echo ‘3/2‘ | bc

echo ‘scale=3; 3/2‘ | bc

乘法使用一个更复杂的精度选择机制:

echo ‘3*2‘ | bc

echo ‘3*2.0‘ | bc

同时,加法和减法的相关运算则与之相似:

echo ‘7-4.15‘ | bc

其他进制系统

bc 的另一个有用的功能是可以使用除了十进制以外的其他计数系统。例如,你可以轻松地做十六进制或二进制的数学运算。可以使用 ibase 和 obase 命令来分别设定输入和输出的进制系统。需要记住的是一旦你使用了 ibase,之后你输入的任何数字都将被认为是在新定义的进制系统中。

要做十六进制数到十进制数的转换或运算,你可以使用类似下面的命令。请注意大于 9 的十六进制数必须是大写的(A-F):

echo ‘ibase=16; A42F‘ | bc

echo ‘ibase=16; 5F72+C39B‘ | bc

若要使得结果是十六进制数,则需要设定 obase :

echo ‘obase=16; ibase=16; 5F72+C39B‘ | bc

下面是一个小技巧。假如你在 shell 中做这些十六进制运算,怎样才能使得输入重新为十进制数呢?答案是使用 ibase 命令,但你必须设定它为在当前进制中与十进制中的 10 等价的值。例如,假如 ibase 被设定为十六进制,你需要输入:

ibase=A

一旦你执行了上面的命令,所有输入的数字都将是十进制的了,接着你便可以输入 obase=10 来重置输出的进制系统。

结论

上面所提到的只是 bc 所能做到的基础。它还允许你为某些复杂的运算和程序定义函数、变量和循环结构。你可以在你的系统中将这些程序保存为文本文件以便你在需要的时候使用。你还可以在网上找到更多的资源,它们提供了更多的例子以及额外的函数库。快乐地计算吧!

原文地址:https://www.cnblogs.com/shamo89/p/9311810.html

时间: 2025-01-08 22:58:22

Linux中的一个命令行计算器bc简介的相关文章

分享一个命令行计算器-bc

假如你在一个图形桌面环境中需要一个计算器时,你可能只需要一路进行点击便可以找到一个计算器.例如,Fedora 工作站中就已经包含了一个名为 Calculator 的工具.它有着几种不同的操作模式,例如,你可以进行复杂的数学运算或者金融运算.但是,你知道吗,命令行也提供了一个与之相似的名为 bc 的工具?下面兄弟连为大家做个介绍: bc 工具可以为你提供的功能可以满足你对科学计算器.金融计算器或者是简单计算器的期望.另外,假如需要的话,它还可以从命令行中被脚本化.这使得当你需要做复杂的数学运算时,

Linux中mysql进入命令行报错:MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.99.192' (111)

场景:在Linux中安装mysql01和mysql02,通过VIP虚出一个VIP=192.168.99.192,mysql01为主ip为192.168.99.153,mysql02为备机ip为192.168.99.154 此时VIP在mysql01上通过 mysql01上连接VIP :mysql -h 192.168.99.192 -P 3306   结果是可以正常进入mysql命令行: 通过mysql02上远程连接VIP 会在界面上报错:mysql error 2003(HY000):Can'

显示器 Linux 性能 18 (一个命令行工具传递)

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因.我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每一个Linux/Unix 系统管理员的工作.这些命令行工具能够在各种Linux系统下使用.能够用于监控和查找产生性能问题的解决办法.这个命令行工具列表提供了足够的工具.您能够挑选适用于您的监控场景的工具. 1.Top-Linux进程监控

linux中判断一个命令是否执行成功

每一条基本命令执行后都有一个返回码,该返回码是用$?表示,执行成功的返回码是0,例如: if [ $? -ne 0 ];then 上一命令执行失败时的操作 else 上一命令执行成功时的操作fi 例如linux中启动JBoss判断是否启动成功 service IMX_JBossAS startif [$? -ne 0 ];then echo "失败"else echo "成功"fi

linux怎么用一个命令行统计出给定目录中有多少个子目录

查看某目录下文件的个数 ls -l |grep "^-"|wc -l 或 find ./company -type f | wc -l 查看某目录下文件的个数,包括子目录里的. ls -lR|grep "^-"|wc -l 查看某文件夹下目录的个数,包括子目录里的. ls -lR|grep "^d"|wc -l 说明: ls -l 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录.链接.设备文件等) grep "

Linux 中常见的命令行,持续更新

1.添加自己的环境变量 [email protected]:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [email protected]:~# PATH=$PATH:/root/wangtao/work [email protected]:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/

一步步打造自己的linux命令行计算器

相信很多人,在工作中会需要使用到计算器.一般的做法是,打开并使用系统自带的计算器. 这种做法可能对我来说,有如下几个问题. 太慢.每次需要打开计算器,然后改成编程模式,手工选择进制,再使用输入表达式进行计算. 需要切换窗口.编程时经常是在终端中,使用GUI计算器则意味着要离开终端,计算完毕再切换回来. 无法使用混合进制表达式.混合进制的意思是,在一个表达式中同时使用多种进制,如"0x10 * 10"表示十六进制的0x10乘以十进制的10. 如果以上有一条你也有同感的话,那么你也应该试一

bc:linux下命令行计算器

在linux下,存在一个命令行的计算器:bc.该程序一般随发行版发布. bc计算器能够执行一些基本的计算,包括+,-,×,\,%. 这些计算不经针对十进制,还可以使用二进制,八进制,十六进制,并且可以混用! 启动 启动时,在终端输入bc命令即可 退出 退出时可以使用Ctrl+D,也可以输入quit. 精度 bc计算器的精度与数学意义上的是一样的.需要注意的在执行除法时的使用. 实例

linux中新增一个shell命令的方法

1. 可以在一个自己建立的shell脚本中定义一个函数,使用 ". xxx.sh" 或者 "source xxx.sh" 运行这个shell脚本之后,其中的function就自动成为了当前shell中的新增命令了. 2. android编译配置环境时会运行. build/envsetup.sh脚本,就是使用这种方法为当前shell新增了一些命令,如:croot, lunch, mm, mmm, mma, cgrep等等.一直以为envsetup.sh中做了什么高级操