Shell脚本,找到循环结果的平均值

时间:2016-11-10 19:26:49

标签: linux shell for-loop

我做了一个循环来找到从(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 个答案:

答案 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