Bash Shell:如何计算具有两个以上操作数的算术表达式

Bash Shell:如何计算具有两个以上操作数的算术表达式,bash,shell,expression,Bash,Shell,Expression,我读过好几篇文章,但它们都在讨论两个操作数 我得到了以下要计算的表达式: 总和=a/b*100 在bash shell中,我可以执行以下操作: bash-4.1$ a=5 bash-4.1$ b=10 bash-4.1$ sum=`expr $a / $b` bash-4.1$ echo $sum 0 但是,我不能: bash-4.1$ sum=`expr $a / $b * 100` expr: syntax error 试试bc 对于整数:echo$((10/5*200))您需要转义ex

我读过好几篇文章,但它们都在讨论两个操作数

我得到了以下要计算的表达式:

总和=a/b*100

在bash shell中,我可以执行以下操作:

bash-4.1$ a=5
bash-4.1$ b=10
bash-4.1$ sum=`expr $a / $b`
bash-4.1$ echo $sum
0
但是,我不能:

bash-4.1$ sum=`expr $a / $b * 100`
expr: syntax error
试试bc


对于整数:
echo$((10/5*200))

您需要转义expr的
*
,否则,在调用expr之前,它将被shell扩展到文件名列表中。您甚至可以将赋值放入算术表达式中:
((sum=a*100/b))
--首先进行乘法运算,以尽可能保持整数运算的精度。shell将在算术表达式中展开不带美元符号的变量请注意,
(…)
是一些shell(但不是所有shell)使用的扩展
:$((sum=a*100/b))
在POSIX shell中是等效的。实际上,您所指的示例是POSIX算术扩展。第2.3节
result=$(echo "($a/$b) * $c)" | bc -l)