我可以用 Bash 做基础数学吗?

Kur*_*rru 40 ssh bash

我想知道,是否可以在 bash 中进行简单的数学运算?我在想这样的事情,=25-5 会打印出 20 或其他东西。

这可以轻松完成吗?

谢谢

小智 77

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

Bash 可以使用 $((expression)) 计算基本表达式,这里有一个示例,说明您可能希望如何使用它:

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

或用于交互式使用,只需

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

  • Bash 只能做整数运算。它不能像 ksh93 或 zsh 那样做浮点运算 (7认同)
  • `$((expression))` 语法是 POSIX `sh` 标准的一部分,源自 `ksh`。 (4认同)
  • 这应该是公认的答案。 (4认同)

DCI*_*Dev 27

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

bc代表“ b ASIC Ç alculator”

然后输入quit并回车退出。

  • 只是为了清楚起见,它会是这样的:echo 25-5 | 公元前 (2认同)

Maj*_*nko 12

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

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400
Run Code Online (Sandbox Code Playgroud)

仅举出其中两个。小心地进行乘法,就好像您没有转义 * 外壳程序可能会尝试将其解释为通配符。


Den*_*son 11

另一个是AWK:

awk 'BEGIN {print 4 + 3 / 12}'
Run Code Online (Sandbox Code Playgroud)


小智 9

好吧,您的问题已得到解答,但请考虑一下:

大多数linux发行版都预装了python,为什么不使用它呢?

只需输入

python
Run Code Online (Sandbox Code Playgroud)

在终端中,然后做你想要的所有算术,比如

2+2
Run Code Online (Sandbox Code Playgroud)

将输出 4 :)

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

python -c 'print 2+2'
Run Code Online (Sandbox Code Playgroud)