我已经创建了一个shell脚本来计算硬盘驱动器上使用的百分比。
出现问题是因为某些驱动器非常小,有些驱动器非常大。一些非常大的驱动器在舍入时返回'0'百分比,我希望它返回0%而不是返回任何内容。
这是我的代码 - 非常混乱,$ MAX是总大小,$ RESULT是使用的大小。
我必须坚持使用'if'语句将非常大的数字降低到百分比计算可以处理的大小。然后它会切断小数点后的所有内容,以便返回合理的结果。
if [ $MAX -gt 100000000 ]
then
MAX=$((MAX/100000))
RESULT=$((RESULT/100000))
fi
RESULT=$(echo "scale=8;100/$MAX*$RESULT" | bc | cut -d. -f1)
条目的例子是 -
MAX = 725632510 结果= 3309452
这返回0,有没有办法让它实际返回0而不是什么都不返回?总而言之,这似乎是一种非常混乱的方式,可以做一些非常简单的事情,所以欢迎任何其他解决方案!
答案 0 :(得分:1)
您可以使用printf
来修正您的电话号码:
RESULT=$(printf "%.0f" $(echo "scale=8;100/$MAX*$RESULT" | bc))