#!/bin/bash # vi:set ts=8 sw=4 et sta: # # Author : Clark J. Wang # License: GPLv2 # # $Date$ # $Author$ # $HeadURL$ # $Revision$ # #--------------------------------------------------------------------# # This is a recursive function function fib { local n=$1 if ((n < 2)); then echo -n $n else local n_1 n_2 f_n f_n_1 f_n_2 ((n_2 = n - 2)) ((n_1= n - 1)) f_n_2=$(fib $n_2) f_n_1=$(fib $n_1) ((f_n = f_n_2 + f_n_1)) echo -n $f_n fi } #-- main ------------------------------------------------------------# { declare -i n=$1 [ $n -eq 0 ] && n=10 for ((i = 0; i < n; ++i)); do echo "fib($i) = $(fib $i)" done }