我的 linux shell 脚本 ( sh
)有问题。
我正在尝试编写一个计算组合的脚本,但我认为在尝试计算能力时会溢出。所以,我正在尝试另一种技术。在这种技术中,我使用了这个:
a=`expr $var1 \* $var2 / $var3`
Run Code Online (Sandbox Code Playgroud)
这是给出错误,显然,我不能这样做:
a=`expr ($var1 \* $var2) / $var3`
Run Code Online (Sandbox Code Playgroud)
因为这也会产生错误。
我该怎么做?
您可以dc
用于任意精度的结果:
precision=4 var1=3 var2=4 var3=5
a=`echo "$precision k $var1 $var2 * $var3 /p" | dc`
Run Code Online (Sandbox Code Playgroud)
自 1977 年左右以来,它应该适用于几乎所有 Unix 变体。如果你知道你有可用的 gnu dc 更简洁
a=`dc -e "$precision k $var1 $var2 * $var3 /p"`
Run Code Online (Sandbox Code Playgroud)
可以使用。