设置无限参数的整数数量

设置无限参数的整数数量

我不太确定我在这里做什么,但我需要能够获得无限数量的整数作为参数提供

到目前为止我有

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

相关内容