if test $# -lt 1
then
echo "Please input a valid amount of numbers. Need at least one."
exit 1
else
args=0
while args -eq "$#"; do
echo $args
shift
done
fi
echo $sum
echo $n
내가받는 오류는 다음과 같습니다
./whileParamList: 15: ./whileParamList: args: not found
while 루프는 이전 매개변수로 증가합니다.+=
답변1
Bash는 수치 계산용으로 설계되지 않았습니다. 이것은조정자, C 또는 Python의 의미에서 "언어"가 아닙니다. 자세한 내용보기:
내가하는 방식은 다음과 같습니다.
mysum() (
IFS=+
bc<<<"$*"
)
아마도:
mysum() (
IFS=+
echo "$(($*))"
)
그런 다음 다음과 같이 호출하십시오.
$ mysum 5 89 83 7 0 2
186
답변2
내 생각에 이와 같은 것은 괜찮다고 생각합니다.
if [[ $# -lt 1 ]]
then
echo "Please input a valid amount of numbers. Need at least one."
exit 1
else
n=$#
sum=0
for arg in "$@"
do
echo "$arg"
sum=$(($sum+$arg))
done
fi
echo "sum=$sum"
echo "number of parameters=$n"
매개변수 이동 방식을 선호하는 경우 다음과 같이 작동합니다.
if [[ $# -lt 1 ]]
then
echo "Please input a valid amount of numbers. Need at least one."
exit 1
else
n=$#
sum=0
while [[ $# -ne 0 ]];
do
echo "arg=$1"
sum=$(($sum+$1))
shift
done
fi
echo "sum=$sum"
echo "number of parameters=$n"