Bash скрипт добавляет числа, полученные в аргументах - PullRequest
0 голосов
/ 11 марта 2019

Требуется, чтобы при вызове скрипта, как показано ниже:

my_script.sh 1 2 3 4

Скрипт должен иметь возможность добавлять эти числа и выводить сумму в конце.

num=0
for arg in "$@"
do
  for number in $arg
  do
    (( num += $number ))
  done
done

Я написал скрипт, как указано выше, но не получил желаемого результата.

1 Ответ

1 голос
/ 11 марта 2019

Ваш скрипт ничего не выводит. Попробуйте добавить

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...