【发布时间】:2014-04-23 00:09:24
【问题描述】:
我正在学习 Linux 中的 bash 脚本,我想解决一个我认为很容易但我无法解决的问题。
我想插入数字作为参数,例如:
sh script.sh 5
如果我插入 5 (1+2+3+4+5)=15,我想得到结果 15
我想用函数来解决。
n=$1
result=0
j=0
ADD(){
result=`expr $result + $j`
}
#for (( i=1; i<=$n; i++ ))
for i in {0..$n..1}
do
ADD
j=`expr $j + $1`
done
echo $result
每次我想添加号码时,我都想调用函数进行添加。 我什至不知道我是否想象对了。 而且我不知道如何使用 for 循环。我尝试了两种不同的 for 循环,但我认为它们无法正常工作。
【问题讨论】:
-
使用
j=$(( $j + $i ));expr仅在不支持 POSIX 算术表达式语法的非常旧的 shell 中才需要。 -
这部分是错误的:
{0..$n..1}-- bash 在变量扩展之前进行大括号扩展,因此您不能将变量放在这样的范围内(不要乱用 eval)。
标签: linux bash function for-loop