bash函数可以呼叫自己本身,称为递归函数
下面一个小例子明白递归的使用
求一个数的阶层
1 #! /bin/bash
2
3 #练习如何使用递归函数
4 #Auter:panda
5 #Time:2011-08-10
6 #函数的用途是计算阶乘
7
8 function factor_in ()
9 {
10 local tmp
11 local tmp1
12 #tmp记录传入函数的整数值
13 tmp="$1"
14 #如果传入的值是1,则不用计算,结果直接为1
15 if [ $tmp -eq 1 ] ; then
16 echo -n " 1 "
17 r=1
18 else
19 #如果传入的值不是1
20 echo -n " $tmp * "
21 #tmp暂时存在tmp1里
22 tmp1=$tmp
23 tmp=$(($tmp-1))
24 #递归调用该函数
25 factor_in $tmp
26 r=$(($tmp1*$r))
27 fi
28 }
运行结果:
panda@panda-pc:~/Code/Shell$ ./recursive.sh
使用法: ./recursive.sh 正整数
panda@panda-pc:~/Code/Shell$ ./recursive.sh 5
5! = 5 * 4 * 3 * 2 * 1 = 120
panda@panda-pc:~/Code/Shell$
阅读(5054) | 评论(3) | 转发(1) |