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

 

posted on 2013-01-16 19:45  name2579  阅读(623)  评论(0编辑  收藏  举报

导航