【发布时间】:2022-10-24 05:48:21
【问题描述】:
我必须制作一个脚本,询问我传递给键盘的数字并将它们相加并显示累计金额。当您输入负数时,程序将结束。
我制作了以下有效的脚本,但我不相信在 for 中使用 seq 将其用作累加器,我没有想到以任何其他方式这样做。
使它更...优雅的方法?
编辑:优雅不是这个词,但如果我正在做的事情在 bash 中是正确的,或者有办法做到“规范”或“不那么奇怪”......
谢谢!
#!/bin/bash
#accumulated sum of numbers
i=0
sum=0
while [[ true ]]; do
echo "Insert a number: "
read num
if (($num < 0)); then
echo "Negative number, exit..."
break
fi
for i in $(seq $num $num); do
sum=$(($i + $sum))
done
echo "The sum of the previous numbers is $sum"
done
【问题讨论】:
-
只是
((sum += num))而不是for i in $(seq $num $num); do sum=$(($i + $sum))done东西? -
一次迭代的for循环背后的想法是什么?