====== Linux ======
===== Fonctions =====
\\
==== Déclaration ====
Pour déclarer une fonction, on utilise la syntaxe suivante :
function maFonction()
{
instructions
}
# ou
maFonction()
{
instructions
}
Les deux syntaxes ont leur avantage :
* L'absence du mot-clé ''function'' permet au script d'être compatible avec les shells Bourne et Korn.
* La présence du mot-clé ''function'' permet d'éviter une collision de nom avec les alias.
\\
==== Appel et paramètres ====
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 **$?**.
\\
\\
==== Exemple ====
#!/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