以 bash 中的数学表达式形式执行输入

Execute a input in form of mathematical expression in bash

如果用户在 bash 中提供以下输入。如何使用 bash?

对其进行评估

5+50*3/20 + (19*2)/7

我将它存储在 variable x 中。我不知道如何继续。

您可以将表达式传递给 calc:

y = $(calc "$x")

您可以为此创建一个简单的脚本,让我们调用 test.sh:

#!/bin/bash
x=
echo $(($x))

您可以将行 echo $(($x)) 替换为 perl -e "print $x" 以获得浮点输出。

并根据您的输入执行它:

$ test.sh "5+50*3/20 + (19*2)/7"
17

带浮点数:

#!/bin/bash
x=
var=$(perl -e "print $x")
echo $var

结果:

$ test.sh "5+50*3/20 + (19*2)/7"
17.9285714285714

$ test.sh "-105+50*3/20 + (19^2)/7"
-95.0714285714286