我可以在Bash中做基础数学吗?


Answers:


21

只需输入bc终端即可。然后输入所有数学内容。

bc代表“ b asic c alculator”

然后键入quit并输入以退出。


2
为了清楚起见,它是这样的:echo 25-5 | 卑诗省
Medhat Helmy

对于某些数学问题,您可能需要将其用引号引起来,例如echo '0.6 * 12' | bc
Goose

您可能还需要添加比例以使浮点精度工作,即echo "scale=2;557/3672" | bc
CpILL

60

如果我们真的是在谈论Bash,而不是Bourne Shell(sh)或其他shell,那很容易。

Bash可以使用$((expression))计算基本表达式,这是一个有关如何使用它的示例:

 a = 3
 b = 4
 c = $((7 * a + b))
 回声$ c

或用于互动使用

 回声$((7 * 3 + 4))

看来确实不错,因为那行得通。我正在进入自己的大学集群之一
-Kurru

4
$((expression))语法是POSIX的一部分sh标准和源自ksh
geekosaur 2011年

6
Bash只能执行整数运算。它无法执行像ksh93或zsh这样的浮点运算
fpmurphy 2011年

3
这应该是公认的答案。
Andreas Hartmann

10

有许多用于执行简单计算的命令行实用程序:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

仅举两个。小心进行乘法运算,就好像您无法逃脱* * shell可能会尝试将其解释为通配符。



7

好,您的问题已得到回答,但请考虑以下问题:

大多数Linux发行版已预装python,那么为什么不使用它呢?

只需输入

python

然后在终端中执行所需的所有算术运算,例如

2+2

将输出4 :)

您也可以使用-cpython参数直接从终端执行此操作。

python -c 'print 2+2'

在我的计算机上,打字python需要将近两秒钟的时间。如果您只想做2 + 2之类的简单事情,那会很烦。
ShreevatsaR 2011年

如果您不希望浮点舍入,请使用python3。例如2 / 30(python:0)(python3:0.06666666666666667
hrvoj3e

如果您仅安装了python3,但想要四舍五入,请使用2//30int(2/30)
mazunki

3

还是露比 :)

尽管可能未预先安装,但速度非常快。

键入irb,然后2+2

要不就 ruby -e 'p 2+2'


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.