Tutoriel des fonctions bash

Tutoriel des fonctions bash
Une fonction bash est une collection de commandes qui peuvent être exécutées à plusieurs reprises. Le but de la fonction est de rendre les scripts bash plus faciles à lire et à vous empêcher de taper le même script souvent. Les fonctions de bash sont considérablement limitées par rapport à celles de la majorité des langages de programmation. Pour l'exécution étape par étape, ce fichier contient diverses commandes. Bien que ces commandes puissent être entrées simplement dans la ligne de commande, il est plus pratique de sauvegarder toutes les commandes interconnectées pour une opération donnée dans un seul fichier du point de vue de la réutilisation. Nous pouvons utiliser ce fichier pour exécuter l'ensemble de commandes spécifié, une seule fois ou plusieurs fois, selon nos besoins. Nous passerons par les principes fondamentaux des fonctions de bash dans cette leçon et montrerons comment les utiliser dans les scripts shell.

Exemple 1

Une fonction est une section de code qui peut être appelée plusieurs fois pour effectuer des tâches spécifiques dans la programmation. La longueur du code est diminuée et la modularité du programme est fournie. L'illustration la plus élémentaire de l'application d'une fonction dans les scripts bash est indiquée dans les éléments suivants:

#!/ bac / bash
BashFunction ()
echo bonjour, mes amis Linux

Bashfonction

Dans le script précédent, nous avons défini la fonction Bashfonction. À l'intérieur, nous avons une déclaration d'écho. Ensuite, nous avons appelé la fonction Bashfonction Pour exécuter la fonction.

La sortie de la fonction Bash Basic est imprimée sur le terminal:

linuxhint @ hp34: ~ $ chmod + x test.sh; ./test.shot
Bonjour, mes amis Linux
linuxhint @ hp34: ~ $

Exemple 2

Nous pouvons adopter des arguments et traiter les données avec des fonctions bash comme dans d'autres langages de programmation. Semblable au passage des paramètres de ligne de commande à un script bash, nous pouvons saisir des données dans la fonction. Nous devons ajouter les paramètres immédiatement après le nom de la fonction pour fournir un certain nombre d'arguments à la fonction bash. Lorsque vous appelez la fonction, nous pouvons transmettre directement les arguments et utiliser les valeurs 1 $, 2 $,… $ n pour y accéder à l'intérieur de la fonction.

#!/ bac / bash
multiply_two_numbers ()
produit local = $ ((1 $ * 2 $))
Le produit en écho de 1 $ et 2 $ est $ produit

multiply_two_numbers 5 2

Dans le script précédent, nous avons créé la fonction multiply_two_numbers. Dans la fonction, nous avons créé la variable produit et attribué l'équation du produit à calculer. La commande Echo est ensuite utilisée pour imprimer le résultat du calcul du produit de deux valeurs. Après cela, nous avons fourni les deux arguments, 5 et 2, attribués à la fonction multiply_two_numbers.

Le shell terminal après l'exécution du script est affiché dans l'image suivante:

linuxhint @ hp34: ~ $ chmod + x test.sh; ./test.shot
Le produit de 5 et 2 est 10
linuxhint @ hp34: ~ $

Exemple 3

La plupart des langages de programmation soutiennent l'idée des fonctions renvoyant une valeur. Cela implique que la fonction doit renvoyer les données à l'endroit à partir de laquelle elle est appelée. Les fonctions bash ne prennent pas en charge le renvoi d'une valeur lorsqu'ils sont appelés, contrairement aux fonctions dans les langages de programmation réels. Cependant, ils nous donnent la possibilité d'établir un statut de retour, qui fonctionne de manière similaire à l'état de sortie utilisé par un programme ou une commande pour terminer.

La variable $? est alloué le mot retour, qui peut être utilisé pour décrire l'état actuel du retour. La fonction est terminée par l'instruction de retour, qui sert également de statut de sortie pour la fonction.

#!/ bac / bash
my_function ()
retour 14

my_function
écho à la valeur renvoyée est $?

Dans le script, nous avons d'abord établi une fonction my_function. Dans la fonction, nous avons un mot-clé de retour qui prend la valeur 14. Ensuite, nous avons invoqué la fonction my_function, qui a une déclaration d'écho qui renvoie la valeur à $?.

Le script bash sortit la valeur spécifiée à une commande de retour comme suit:

linuxhint @ hp34: ~ $ chmod + x test.sh; ./test.shot
La valeur renvoyée est 14
linuxhint @ hp34: ~ $

Exemple 4

Dans un script, une variable globale est une variable accessible à partir de n'importe quel emplacement et n'a aucune restriction sur sa portée. Même si une variable est déclarée à l'intérieur d'une fonction, elle est automatiquement définie comme une variable globale. Les variables peuvent également être créées localement. Une fois qu'ils ont été alloués pour la première fois, les variables locales peuvent être spécifiées à l'intérieur du corps de fonction à l'aide du mot-clé local. Seule cette fonction vous permet d'y accéder. Le même nom peut être donné aux variables locales créées dans d'autres fonctions.

#!/ bac / bash
var1 = "cat"
Animal_names_fun ()
var2 local = "chien"
var3 = "mouton"
Echo "Le nom du premier animal est $ var1"
Echo "Le nom du Second Animal est $ var2"

Animal_names_fun
Echo "Le nom du premier animal est $ var1"
Echo "Le nom du premier animal est $ var2"
Echo "Le nom du premier animal est $ var3"

Le script bash commence par la déclaration de la variable globale var1 et l'initialise avec la valeur d'une chaîne. Ensuite, nous avons créé la fonction Animal_names_fun. À la fonction Animal_names_fun, Nous avons défini la variable locale avec le mot-clé local et une variable globale. Les variables locales et globales ont été définies avec les noms var2 et var3, Et nous avons également réglé leurs valeurs. Ensuite, nous avons fait écho à la variable globale var1 Dans la fonction et la variable locale var2 Dans la fonction. Après cela, nous avons appelé la fonction Animal_names_fun et accédé aux variables globales var1 et var3, qui s'exécute généralement, mais comme nous essayons d'accéder à la variable locale Val2 En dehors de la fonction spécifiée, il renverra une valeur vide.

Vous pouvez informer la sortie de l'accès aux variables locales et globales du programme BASH comme suit:

linuxhint @ hp34: ~ $ chmod + x test.sh; ./test.shot
Le nom du premier animal est le chat
Le nom du deuxième animal est un chien
Le nom du premier animal est le chat
Le nom du premier animal est
Le nom du premier animal est des moutons
linuxhint @ hp34: ~ $

Exemple 5

En nommant une fonction la même que la commande que nous voulons remplacer, nous pouvons choisir de remplacer les commandes bash. Par exemple, nous devons écrire une fonction appelée écho Si nous avons l'intention de remplacer la commande echo.

Cette idée de remplacer les commandes bash peut être utile dans certaines circonstances, comme lorsque nous voulons utiliser une commande avec des options particulières. De plus, il y a des situations où nous ne voulons pas répéter la commande entière avec des options dans le script. Nous pouvons utiliser des options pour modifier la commande bash intégrée dans ces situations. Utilisons un exemple pour mieux comprendre l'idée de remplacer les commandes dans Bash Shell Scripting:

#!/ bac / bash
écho ()
Builtin echo -n 'date + "[% m-% d% h:% m:% s]"' ":"
Echo intégré 1 $

Echo "Bienvenue sur mes blogs."

Dans le script de bash précédent, nous avons une fonction écho. Dans la fonction ECHO, nous avons dépassé la commande ECHO et inséré la méthode horodomagie intégrée comme argument à la commande echo.

La sortie de la fonction de remplacement bash s'affiche dans l'image suivante:

linuxhint @ hp34: ~ $ chmod + x test.sh; ./test.shot
[12-06 15:54:50]: Bienvenue sur mes blogs.
linuxhint @ hp34: ~ $

Conclusion

Nous avons discuté de la fonction bash sur ce sujet. Un morceau de code réutilisable créé explicitement pour une tâche donnée est appelé une fonction bash. Une fois défini, il peut être utilisé plusieurs fois dans un script. Bash s'engage avec le système d'exploitation pour effectuer des commandes reçues de la coquille après les avoir lues. Une fonctionnalité fantastique de Bash est qu'il vous permet de combiner une grande partie de ses commandes et fonctions dans un seul script exécutable, ce qui facilite l'organisation de votre travail.