Bash递归函数计算斐波纳吉(fibonacci)数列
bash的函数,不知道还是否有其他取得返回值的方法,这里用了
$? - 上一条指令的返回值 $@ - 所有传入参数, 不加引号时与$*相同。加引号后"$@"="$1" "$2" ... 而 "$*"="$1 $2 ...", $@比$*用的时候多 $1 - 第一个传入参数
fibonacci.sh :
1 #!/bin/bash 2 3 function fibonacci 4 { 5 if [ "$@" == "1" ]; then 6 return 1; 7 else 8 let next=$@-1; 9 fibonacci $next; 10 let sum=$?+$@; 11 return $sum; 12 fi 13 } 14 15 fibonacci $1 16 echo "fibonacci($1) = $?"
用法如下:
root$ bash fibonacci.sh 5
root$ fibonacci(5) = 15