bash计算平均返回错误答案
我有一个脚本:bash计算平均返回错误答案,bash,echo,average,Bash,Echo,Average,我有一个脚本: #!/bin/bash mark=10+10 nb=2 echo $mark echo $(($mark/$nb)) 我不明白为什么第二个回音返回15。试试这个: #!/bin/bash mark=$((10+10)) nb=2 echo $mark echo $(($mark/$nb)) 原因是当分配10+10时,不会计算结果。而是在最后一行执行10+10/$nb。结果当然是15。试试这个: #!/bin/bash mark=$((10+10)) nb
#!/bin/bash
mark=10+10
nb=2
echo $mark
echo $(($mark/$nb))
我不明白为什么第二个回音返回15。试试这个:
#!/bin/bash
mark=$((10+10))
nb=2
echo $mark
echo $(($mark/$nb))
原因是当分配10+10时,不会计算结果。而是在最后一行执行10+10/$nb。结果当然是15。试试这个:
#!/bin/bash
mark=$((10+10))
nb=2
echo $mark
echo $(($mark/$nb))
原因是当分配10+10时,不会计算结果。而是在最后一行执行10+10/$nb。结果当然是15。这是因为运算符的前导,而且因为
mark
本身并没有被计算(在数学意义上的计算)
echo$($mark/$nb))
首先替换为$((10+10/2))
,然后计算为10+5
,即5
该问题有多种解决方案,例如:
echo $((mark/nb)
echo $((($mark)/$nb))
这是因为运算符的先行性,以及因为
标记本身并没有被计算(从数学意义上来说是求值)
echo$($mark/$nb))
首先替换为$((10+10/2))
,然后计算为10+5
,即5
该问题有多种解决方案,例如:
echo $((mark/nb)
echo $((($mark)/$nb))
应该是echo$((标记/nb))
应该是echo$((标记/nb))