Les fonctions

Objectifs

  • Comprendre la notion de fonction

  • Savoir définir une fonction

  • Savoir découper son programme

DéfinitionFonction

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.

1
function mafonction {
2
    # Un traitement
3
}
4
5
# OU
6
7
mafonction() {
8
    # Un traitement
9
}

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.

SyntaxeAppeler 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.

1
function bonjour {
2
    echo "Bonjour $(whoami)
3
}
4
5
bonjour

SyntaxeUtiliser 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, ...

1
function square {
2
    echo "Le carre de $1 est $(($1*$1))"
3
}
4
5
square 3

SyntaxeRé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.

1
function square {
2
    echo $(($1*$1))
3
}
4
5
resultat=$(square 3)
6
echo "Le carre de 3 est $resultat"

MéthodeQuand 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.