여기서 무엇을 하고 있는지 잘 모르겠지만 인수로 제공되는 정수를 무제한으로 얻을 수 있어야 합니다.
지금까지 나는
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