Ваш скрипт ничего не выводит. Попробуйте добавить
echo $num
в конце.
НО Ваш сценарий может быть упрощен. Как написано, ваш скрипт будет работать для ввода как
my_script.sh 1 '2 3' 4
также, поскольку он сначала проходит по аргументам (for arg in "$@"
), но затем также проходит по всем словам в каждом аргументе (for number in $arg
). Вам не нужен второй цикл.
Кроме того, наименование результата $sum
, кажется, лучше объясняет его назначение. Итак, вы можете просто набрать
#!/bin/bash
sum=0
for number in "$@" ; do
(( sum += number ))
done
echo $sum