Pour déclarer une fonction, on utilise la syntaxe suivante :
function maFonction() { instructions } # ou maFonction() { instructions }Les deux syntaxes ont leur avantage :
function
permet au script d'être compatible avec les shells Bourne et Korn.function
permet d'éviter une collision de nom avec les alias.
Pour appeler une fonction, on utilise la syntaxe suivante :
maFonction param_1 param_2 ... param_n
Les paramètres sont bien sûrs optionnels.
À l'intérieur de la fonction, ils sont représentés, respectivement, par les variables $1, $2,… , $n.
$0 représente toujours le nom du script (et non de la fonction) qui s'exécute.
$# représente le nombre de paramètres passés à le fonction.
Une fonction termine son exécution lorsqu'elle n'a plus d'instructions à exécuter ou lorsqu'elle rencontre l'instruction return
ou exit
. Ces instructions peuvent être suivies d'un entier positif, qui correspond à la valeur de retour de la fonction. Si aucune valeur n'est spécifiée, c'est la valeur 0 qui est renvoyée.
La valeur de retour de la dernière fonction appelée est stockée dans la variable $?.
#!/bin/bash # déclaration d'une fonction function maFonction() { local varlocal="je suis la fonction" echo "$varlocal" echo "Nombres de paramètres : $#" echo $1 $prenom } prenom="Olivier" # appel de ma fonction maFonction "Hello"Ce qui donne le résultat suivant:
je suis la fonction
Nombres de paramètres : 1
Hello Olivier