2015-10-10 3 views
0

У меня есть следующий код, который я хочу быть внутри функции getsum(). Я пробовал использовать следующий код без функции. Когда я запускаю ./sum 5 6, я получаю 11.Функция вызова в сценарии оболочки

#!/bin/bash 
sum=0 
for i in [email protected]; do sum=$((sum+i)); done 
echo $sum 
exit 0 

Но как я могу поместить его в функцию, выполняющую ту же работу?

Я пробовал следующий код, но он не работает.

#!/bin/bash 
sums() { 
    sum=0 
    for i in [email protected]; do sum=$((sum+i)); done 
    echo $sum 
    exit 0 
} 

sums 
+0

Помимо 'выхода 0' ваша функция выглядит отлично. Это заявление закончит вашу оболочку! –

ответ

3

Вам просто нужно передать аргументы ([email protected]) функции sum(), который вы передаете в сценарий:

#!/bin/bash 

sums() { 
    sum=0 
    for i in [email protected]; do sum=$((sum+i)); done 
    echo $sum 
    exit 0 
} 

sums "[email protected]" # Note this line 
+0

Спасибо, работаю так, как я хотел :) – Alex