2016-11-10 29 views
1

我制成一个循环来找到从(1至10 MOD 5)计算每个数的结果+ 2壳牌脚本,循环的发现平均结果

for ((i = 0; i <= 10; i++)) 
do 
    calculate=$((i % 5 + 2)) 
    echo "($i % 5) + 2 = " $calculate 
done 
average=$(($calculate/10)) 
echo $average` 

我的问题是固定我的代码,这样我可以搭袢的所有结果,并发现它们的平均 其返回回0的平均

回答

1

你必须保持一个完整的总 - ($calculate/10)只是最后迭代。在循环之前保持初始化的运行总数为零total = 0 ...然后将计算值添加到循环的每次迭代中的总和中total = $($total + $calculate)然后平均值为total/10(不计算/ 10)。

#!/bin/bash 
total=0 
for ((i = 0; i <= 10; i++)) 
do 
    calculate=$((i % 5 + 2)) 
    total=$(($total + $calculate)) 
    echo "($i % 5) + 2 = " $calculate 
done 
#average=$(($calculate/10)) 
average=$(($total/10)) 
echo $average