Les fonctions
Objectifs
Comprendre la notion de fonction
Savoir définir une fonction
Savoir découper son programme
Définition : Fonction
Une fonction est un ensemble d'instructions qui permettent d'effectuer une tâche particulière, elle peut prendre des paramètres
On peut voir une fonction comme un sous script.
Syntaxe :
Pour définir une fonction il existe deux syntaxes en Bash. L'une comme l'autre permettent de faire exactement la même chose mais chacun peut avoir ses préférences notamment en terme de lisibilité du code.
function mafonction {
# Un traitement
}
# OU
mafonction() {
# Un traitement
}
Une fois qu'une des deux syntaxes a été adoptée, une bonne pratique est de garder la même syntaxe tout le long du projet afin de garder une certaine cohérence.
Syntaxe : Appeler une fonction
On peut simplement appeler une fonction quand elle a été définie. On utilise une syntaxe similaire à l'appel des commandes, à savoir le nom de la fonction éventuellement suivi de ses paramètres.
function bonjour {
echo "Bonjour $(whoami)
}
bonjour
Syntaxe : Utiliser des paramètres
On a vu qu'il était possible d'utiliser des paramètres. Tout comme pour un script, les paramètres sont accessibles à l'aide de variables spéciales qui ont pour nom 1
, 2
, 3
, ... On y accède donc avec $1
, $2
, $3
, ...
function square {
echo "Le carre de $1 est $(($1*$1))"
}
square 3
Syntaxe : Récupérer un résultat
Pour récupérer le résultat de l'exécution d'une fonction on pourra utiliser la sortie standard de cette fonction tout comme pour récupérer le résultat d'une commande.
function square {
echo $(($1*$1))
}
resultat=$(square 3)
echo "Le carre de 3 est $resultat"
Méthode : Quand utiliser les fonctions ?
Les fonctions sont très utiles pour découper de manière logique le code, par exemple si vous voyez qu'une suite d'instructions similaire est souvent répétée dans votre code ou si à un endroit vous utilisez une séquence d'instruction qui a pour but d'effectuer une instruction bien précise (interpréter un texte par exemple).
Fondamental :
Les fonctions permettent d'éviter de répéter une séquence d'instruction à plusieurs endroits (rappelez vous, un bon programmeur est un programmeur fainéant !). Elles permettent également de modifier le comportement d'une séquence d'instructions à un seul endroit, sans avoir à se rappeler de tous les endroits où elle est utilisée, on gagne ainsi du temps et on évite les oublis.