bash 命令行算术 echo $((x-y)) 如何将结果除以 z?
bash command line arithmetic echo $((x-y)) how to divide result by z?
我正在尝试找出一种方法来获取基本方程的结果并除以另一个整数。所以以简单的形式看起来像;
A-B = C 然后用 C 除以 D
我知道等式的第一部分是 echo $((A-B)) 但我如何得到该结果除以 D?
如有任何反馈,我们将不胜感激!
你可以在里面做计算$(( ))
如果你想计算(A-B)/C
,你可以把它放在$(( ))
里面:
echo $(( (A-B)/C ))
请注意,结果将被截断为零,因为 bash 不支持小数。
记得确保表达式前有 $((
后有 ))
,并且里面的所有括号都匹配。
使用shell
这(取自评论)失败,因为括号不平衡:
$ echo $((2147483633-807279114))/5184000))
试试看:
$ echo $(( (2147483633-807279114)/5184000 ))
258
上面returns一个整数因为shell只做整数运算
使用bc
如果你想要精确的浮点数,使用的标准工具是bc
:
$ echo '(2147483633-807279114)/5184000' | bc -l
258.52710628858024691358
使用python
Python同时支持整数和浮点数运算:
$ python -c 'print (2147483633-807279114)//5184000'
258
$ python -c 'print (2147483633-807279114)/5184000.0'
258.527106289
Python,带有 numpy 扩展,即使您的需求扩展到复杂的科学计算也是一个很好的工具。
使用awk
awk
,一个标准的unix工具,支持浮点运算:
$ awk 'BEGIN{print (2147483633-807279114)/5184000;quit}'
258.527
dc <<< "$A $B - $D / p"
注1:p打印最终结果
注2:使用dc需要先输入数字再运算
我正在尝试找出一种方法来获取基本方程的结果并除以另一个整数。所以以简单的形式看起来像; A-B = C 然后用 C 除以 D
我知道等式的第一部分是 echo $((A-B)) 但我如何得到该结果除以 D?
如有任何反馈,我们将不胜感激!
你可以在里面做计算$(( ))
如果你想计算(A-B)/C
,你可以把它放在$(( ))
里面:
echo $(( (A-B)/C ))
请注意,结果将被截断为零,因为 bash 不支持小数。
记得确保表达式前有 $((
后有 ))
,并且里面的所有括号都匹配。
使用shell
这(取自评论)失败,因为括号不平衡:
$ echo $((2147483633-807279114))/5184000))
试试看:
$ echo $(( (2147483633-807279114)/5184000 ))
258
上面returns一个整数因为shell只做整数运算
使用bc
如果你想要精确的浮点数,使用的标准工具是bc
:
$ echo '(2147483633-807279114)/5184000' | bc -l
258.52710628858024691358
使用python
Python同时支持整数和浮点数运算:
$ python -c 'print (2147483633-807279114)//5184000'
258
$ python -c 'print (2147483633-807279114)/5184000.0'
258.527106289
Python,带有 numpy 扩展,即使您的需求扩展到复杂的科学计算也是一个很好的工具。
使用awk
awk
,一个标准的unix工具,支持浮点运算:
$ awk 'BEGIN{print (2147483633-807279114)/5184000;quit}'
258.527
dc <<< "$A $B - $D / p"
注1:p打印最终结果
注2:使用dc需要先输入数字再运算