Bash

設置無限參數的整數個數

  • April 24, 2021

我不太確定我在這裡做什麼,但我需要能夠獲得無限數量的整數作為參數提供

到目前為止我有

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

輸出是 5

我的理解是它在這裡採用了位置參數,但是我怎樣才能讓它做盡可能多的事情呢?

但是當我嘗試添加更多數字時 1 2 3 4

什麼也沒發生,它只是說 5

我需要能夠允許它遍歷無限數量的整數

當您執行此操作時,將依次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

引用自:https://unix.stackexchange.com/questions/634038