#!/bin/sh # Copyright 2005 Daniel Cer (daniel.cer@cs.colorado.edu) # # This work is licensed under the Creative Commons Attribution-NonCommercial- # ShareAlike License. To view a copy of this license, visit # http://creativecommons.org/licenses/by-nc-sa/2.5/ or send a letter to # Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, # 94105, USA. function fibonacci() { local fib=1; local prev_fib=1 local next_prev_fib; local i if [ $1 -le 0 ]; then fibonacci_ret=-1; return; fi for i in `seq 2 $1`; do next_prev_fib=$fib; fib=$[$fib+$prev_fib]; prev_fib=$next_prev_fib; done fibonacci_ret=$fib; } if [ $# -ne 1 ]; then echo -e "Usage:\n\t$0 (n-th fibonacci # to calculate)" >&2 exit -1 fi fibonacci $1 echo "fibonacci($1): $fibonacci_ret"