#"$@" are all the arguments, each one as it was given;
#$# is their number
getAvg() {
if (($# == 0)); then
echo 0
return
fi
local sum=0
local value
for value in "$@"; do
((sum += value))
done
#bash has no fractions: awk divides
awk -v sum="$sum" -v count="$#" 'BEGIN { print sum / count }'
}
avg=$(getAvg 1 2 3 4)
#avg is 2.5
#an array goes in as a list of arguments
numbers=(2 4 9)
avgArray=$(getAvg "${numbers[@]}")
#avgArray is 5
echo "avg is $avg"
echo "avgArray is $avgArray"