我希望你能帮助我理解在Bash脚本中递归是如何工作的。
我想把数字作为参数插入:
sh script.sh 4
结果应该是(1+2+3+4)=10。
这是我写的,我的想法很好,但无法使其正常工作。
n=$1
j=1
result=0
recursion(){
result=`expr $result + $j`
j=`expr $j + 1`
if [ "$n" -gt 0 ]; then
recursion #is this how you do recursion?
n=`expr $n - 1
else
echo $result
fi
}
recursion
我认为我想得对,但也许我错了。
expr
通常已被弃用--在现代POSIX派生shell中使用它没有任何理由。$(( ))
允许您在任何POSIX shell中进行数学运算,而(( ))
则允许您在bash中进行相同的操作,而不会扩展结果。 - Charles Duffy