我想从文件中计算一些信息,但除法不起作用。如果我将更/
改为+
或-
,则此计算正确。有任何想法吗?
#!/bin/sh
FILE=/tmp/stats
for EMPTY in $(cat $FILE |sed '1!d'); do (echo "Empty Servers $EMPTY | Empty-Servers=$EMPTY;"); done
for SERVERS in $(cat $FILE |sed '2!d'); do (echo "Total Servers $SERVERS | Total=$SERVERS;"); done
PERCENT=$(((EMPTY / SERVERS)*100))
echo $PERCENT
除法确实起作用了,只是壳只处理整数。
我认为你要么想要调用bc
,要么可以按自己喜欢的方式进行数学运算,或者适应处理整数的含义。
你能做什么,而不是例如:改变你的表达周围,这样你乘EMPTY
用100
第一,然后通过分SERVERS
。即,$(((EMPTY * 100) / SERVERS))
。
(当然,这可能不如你希望的那么精确,但是它并不会始终产生0。)