为什么除法不会在shell编程中产生结果?

时间:2009-11-30 12:10:38

标签: shell

我有一个shell程序,其中一小部分可以看作如下:

count=1000
total=100000
percent=`expr $count/$total`

它不能产生除法结果,在结果文件中只显示了1000/100000。

有任何帮助吗?非常感谢.~

4 个答案:

答案 0 :(得分:4)

您需要在'/'符号前后添加空格:

percent=`expr $count / $total`

但它是一个整数除法。因此,您需要先将$ count乘以100,或使用类似'bc'的内容。

答案 1 :(得分:3)

你应该在要划分的值和/运算符之间有空格:

count=1000
total=100000
percent=`expr $count / $total`
#                   ^ ^ - those are important

答案 2 :(得分:1)

更好地使用bc

percent=$(echo "scale=2; $count/$total" | bc)

答案 3 :(得分:0)

使用gawk

count=1000
total=100000
result=$(gawk -v c=$count -v t=$total 'BEGIN{print c/t }')
echo "result is $result"