sum=$(
awk 'BEGIN {t=0; for (i in ARGV) t+=ARGV[i]; print t}' "${arrValues[@]}"
)
Com zsh (caso você não tenha para usar bash ), já que ele suporta números de ponto flutuante internamente:
sum=$((${(j[+])arrValues}))
com ksh93 :
Se você precisar do tipo de precisão que o bc fornece, você pode pré-processar os números para que 12e23 seja alterado para (12*10^23) :
sum=$(
IFS=+
sed 's/\([0-9.]*\)[eE]\([-+]*[0-9]*\)/(*10^)/g' <<< "${arrValues[*]}" |
bc -l
)