Попробуйте это:
SUM () {
[ $# -lt "2" ] && return 1
for par in $@; do
local sum=`expr $sum + $par`
done
echo $sum
return 0
}
SUM 3 4 5
SUM 3 4 5 1 1 1 1 2 3 4 5
Это выведет 12 и 30.
$@ относится к параметру, $# возвращает количество параметров, в этом случае 3 или 11.
Протестировано на linux redhat 4