Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité

Les fonctions dans les scripts shell

 

Les fonctions dans les scripts shell

Comme d'autres langages de programmation, bash fournit également les fonctions. Les fonctions sont le meilleur moyen de réutiliser le code dans un script. Un programme long est plus complexe et plus difficile à concevoir, coder et maintenir. Par conséquent, il serait utile que la fonctionnalité globale d'un script soit séparée en sous-sections plus petites et logiques. Ces sous-sections sont appelées fonctions shell. En particulier, la fonction est très utile lorsque vous avez certaines tâches qui doivent être exécutées plusieurs fois. Ainsi, plutôt que d'écrire le même code, encore et encore, il est préférable de l'écrire une fois dans une fonction et d'appeler la fonction à chaque fois selon les besoins.

Créer une fonction

Il existe deux syntaxes que vous pouvez utiliser pour créer des fonctions dans les scripts shell Bash. La première syntaxe utilise le mot-clé function, ainsi que le nom de fonction que vous attribuez au bloc de code :

function nomfct {
    commandes
}

L'attribut nomfct définit un nom unique attribué à la fonction. Un nom unique doit être attribué à chaque fonction que vous définissez dans votre script.

Les commandes sont une ou plusieurs commandes du shell Bash qui composent votre fonction. Lorsque vous appelez la fonction, le shell Bash exécute chacune des commandes dans l'ordre où elles apparaissent dans la fonction, comme dans un script normal.

La deuxième syntaxe pour définir une fonction dans un script shell Bash suit de plus près la façon dont les fonctions sont définies dans d'autres langages de programmation :

nomfct() {
 commandes
}

Les parenthèses vides après le nom de la fonction indiquent que vous définissez une fonction. Les mêmes règles de dénomination s'appliquent dans cette syntaxe que dans la syntaxe originale des fonctions de script shell.

Appeler des fonctions

Pour utiliser une fonction dans votre script, spécifiez le nom de la fonction sur une ligne, comme vous le feriez pour toute autre commande shell :

#!/bin/bash
function test {
    echo "La première fonction"
}


# appeler la fonction 2 fois

test
test
devinfo@ubuntu:~/scripts$ fct.sh
La première fonction
La première fonction
Passage d'arguments

Parfois, vous pouvez être amené à transmettre certains arguments et à les traiter au sein de la fonction. Ainsi, vous pouvez envoyer des données d'entrée utilisateur à la fonction de la même manière que vous passez des arguments de ligne de commande à un script shell. Vous pouvez fournir les arguments juste après le nom de la fonction. Ces paramètres seront représentés par $1, $2, $3, et ainsi de suite.

#!/bin/bash
function somme {
    s=$[ $1 + $2 ]
    echo "La somme $1+$2=$s"
}


# appeler la fonction 2 fois

somme 5 8
somme 7 12
devinfo@ubuntu:~/scripts$ fct.sh
La somme 5+8=13
La somme 7+12=19
Valeur de retour de la fonction Bash :

La plupart des langages de programmation ont le concept de valeur de retour. Cependant, les fonctions bash ne supportent pas cette fonctionnalité et permettent de passer les valeurs des variables locales d'une fonction au programme principal en utilisant le mot clé return. Par la suite, la valeur retournée est stockée dans la variable par défaut $? Par exemple :

#!/bin/bash
function somme {
    s=$[ $1 + $2 ]
    return $s
}


# appeler la fonction 2 fois

somme 5 8
echo "La somme 5+8=$?"
devinfo@ubuntu:~/scripts$ fct.sh
La somme 5+8=13

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.