14.9. Fonctions récursives

Comme pour les programmes shell, bash permet l’écriture de fonctions récursives.

Le programme fctfactr implante le calcul d’une factorielle sous la forme d’une fonction shell f récursive. Outre la récursivité, ce programme illustre

fctfactr
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	#!/bin/bash

	shopt -s extglob

	if (( $# != 1 )) || [[ $1 != +([0-9]) ]]
	  then
	    echo "syntaxe : fctfactr n" >&2
	    exit 1
	fi

	function f
	{
	local -i n
	if (( $1 == 0 ))
	  then echo 1
	  else
	    (( n=$1-1 ))
	    n=$( f $n ) 	=> appel récursif
	    echo $(( $1 * $n ))
	fi
	}

	f $1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

$ fctfactr
syntaxe : fctfactr n
$ fctfactr euzte12uz
syntaxe : fctfactr n
$ fctfactr 1
1
$ fctfactr 4
24
$