Algo como isto, acho que está tudo bem:
if [[ $# -lt 1 ]]
then
echo "Please input a valid amount of numbers. Need at least one."
exit 1
else
n=$#
sum=0
for arg in "$@"
do
echo "$arg"
sum=$(($sum+$arg))
done
fi
echo "sum=$sum"
echo "number of parameters=$n"
Se você preferir o método de troca de parâmetro, isso também funcionará:
if [[ $# -lt 1 ]]
then
echo "Please input a valid amount of numbers. Need at least one."
exit 1
else
n=$#
sum=0
while [[ $# -ne 0 ]];
do
echo "arg=$1"
sum=$(($sum+$1))
shift
done
fi
echo "sum=$sum"
echo "number of parameters=$n"