Content #
局部函数变量的一个特性是自成体系(self-containment)。除了获取函数参数,自成体系的函数不需要使用任何外部资源。
递归算法的经典例子是计算阶乘。 5! = 1 * 2 * 3 * 4 * 5 = 120 使用递归,这一算法可以简化为以下形式: x! = x * (x-1)! 阶乘函数用其自身计算阶乘的值:
$ cat test13
#!/bin/bash
# using recursion
function factorial {
if [ $1 -eq 1 ]
then
echo 1
else
local temp=$[ $1 - 1 ]
local result=$(factorial $temp)
echo $[ $result * $1 ]
fi
}
read -p "Enter value: " value
result=$(factorial $value)
echo "The factorial of $value is: $result"
$
$ ./test13
Enter value: 5
The factorial of 5 is: 120
$
From #
Linux命令行与shell脚本编程大全