In una discussione nella sezione relativa a linux mi è stata suggerita questa guida http://bash.cyberciti.biz/guide/Main_Page che mi sono pappato con piacere, ma proprio alla fine - sarà anche l'ora - non riesco a venirne fuori con questo esempo: http://bash.cyberciti.biz/guide/Recursive_function
Si parla appunto di funzioni ricorsive, e secondo il debug offerto, lo script si comporta in maniera comprensibile fino a quando il valore di i diventa due ed echo lo visualizza, però non capisco perché non finisca tutto qui. E invece f comincia ad essere moltiplicato per i valori precedentemente assunti da i... qualcuno saprebbe suggerirmi il perché?
Per comodità riporto anche lo script che in questo caso viene lanciato con ./nomescript.sh 5:
- Codice: Seleziona tutto
#!/bin/bash
# fact.sh - Shell script to to find factorial of given command line arg
factorial(){
local i=$1
local f
declare -i i
declare -i f
# factorial() is called until the value of $f is returned and is it is <= 2
# This is called the recursion
[ $i -le 2 ] && echo $i || { f=$(( i - 1)); f=$(factorial $f); f=$(( f * i )); echo $f; }
}
# display usage
[ $# -eq 0 ] && { echo "Usage: $0 number"; exit 1; }
# call factorial
factorial $1
Chiedo scusa se la domanda è stupida, ma sono sprovveduto in materia...
grazie a chi vorrà aiutarmi e ciao agli altri


![Ciao [ciao]](http://www.megalab.it/forum/images/smilies/Ciao.gif)

... pensavo che ogni volta si desse vita ad un processo nuovo, mentre quello "genitore" ne risultasse in definitiva sostituito... bastava farsi un disegnino in testa di cos'è l'annidamento... comunque grazie, adesso sto leggendo un'altra guida e poi cerco risvolti pratici nei feed di commandlinefu.com che è spesso interessante.