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

为什么除法不能在shell编程中产生结果?,shell,Shell,我有一个shell程序,它的一小部分可以如下所示: count=1000 total=100000 percent=`expr $count/$total` 它无法生成除法结果,结果文件中仅显示1000/100000 有什么帮助吗?非常感谢。~要分割的值和/运算符之间应该有空格,如下所示: count=1000 total=100000 percent=`expr $count / $total` # ^ ^ - those are important 在

我有一个shell程序,它的一小部分可以如下所示:

count=1000
total=100000
percent=`expr $count/$total`
它无法生成除法结果,结果文件中仅显示1000/100000


有什么帮助吗?非常感谢。~

要分割的值和/运算符之间应该有空格,如下所示:

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

在要分割的值和/或运算符之间应该有空格,如下所示:

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

您需要在“/”号前后添加空格:

percent=`expr $count / $total`

但它是一个整数除法。因此,您需要先将$count乘以100,或者使用类似“bc”的符号。

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

percent=`expr $count / $total`
但它是一个整数除法。因此,您需要先将$count乘以100,或者使用类似“bc”的值。

更好地使用:

更好地使用:

目瞪口呆

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

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

你用的是什么shell语言?@Justin:问题是哪个shell。Bash、dash、ash、ksh、csh、zsh等等。你用的是什么shell语言?@Justin:问题是哪个shell。Bash、dash、ash、ksh、csh、zsh等。当我按照您的建议使用bc时,我得到了以下错误信息,我还应该在这个命令中添加什么?为什么终端将生成的.89号识别为新命令?非常感谢/循环\u计数\u引用\u帧号\u no.sh:第24行:.89:未找到命令我得到它,在=和下面的表达式之间不应该有空格。非常感谢!当我按照你的建议使用bc时,我得到了以下错误信息,我还应该在这个命令中添加什么?为什么终端将生成的.89号识别为新命令?非常感谢/循环\u计数\u引用\u帧号\u no.sh:第24行:.89:未找到命令我得到它,在=和下面的表达式之间不应该有空格。非常感谢!