我不太确定我在这里做什么,但我需要能够获得无限数量的整数作为参数提供
到目前为止我有
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