무제한 매개변수의 정수를 설정하세요.

무제한 매개변수의 정수를 설정하세요.

여기서 무엇을 하고 있는지 잘 모르겠지만 인수로 제공되는 정수를 무제한으로 얻을 수 있어야 합니다.

지금까지 나는

for sum  in $@; do
        sum=$(($1 + $2 + $3))
done
echo $sum

출력은 다음과 같습니다 5

제가 이해한 바는 여기서 위치 매개변수를 얻는다는 것입니다. 그러나 가능한 한 많은 작업을 수행하도록 하려면 어떻게 해야 합니까?

그런데 숫자를 더 추가하려고 하면 1 2 3 4

아무 일도 일어나지 않고 그냥 말한다 5

무한한 수의 정수를 반복할 수 있어야 합니다.

답변1

이렇게 하면 for sum in $@변수가 $sum차례로 각 값으로 설정됩니다.

간단한 테스트를 통해 확인할 수 있습니다.

for lp in $@
do
  echo $lp
done

"10 20 30 40"을 인수로 사용하여 이 명령을 실행하면 각 값이 차례로 출력되는 것을 볼 수 있습니다.

따라서 필요한 것은 임시 변수와 값의 합이 포함된 루프입니다.

sum=0
for lp in $@
do
  sum=$(( sum + lp ))
done
echo $sum

관련 정보