Un script Bash est un fichier texte brut. Ce fichier contient différentes commandes pour une exécution étape par étape. Ces commandes peuvent être écrites directement dans la ligne de commande, mais du point de vue de la réutilisabilité, il est utile de stocker toutes les commandes interdépendantes pour une tâche spécifique dans un seul fichier. Nous pouvons utiliser ce fichier pour exécuter l'ensemble de commandes une ou plusieurs fois selon nos besoins.
Ici, dans cet article, nous allons discuter de l'utilisation des fonctions dans Bash Scripting.
En programmation, une fonction est un bloc de code qui effectue certaines tâches et peut être appelée plusieurs fois pour effectuer des tâches. Il offre une modularité au programme et réduit la longueur du code. L'exemple le plus simple de l'utilisation d'une fonction dans les scripts Bash peut être donné comme suit :
Exemple de script :
#!/bin/bash #It is a function myFunction () { echo Hello World from techcodeview.com } #function call myFunction> Sortir:
liste sur Java
Hello World from techcodeview.com>
L'exemple ci-dessus montre une fonction qui imprime quelque chose lorsqu'elle est appelée. Ainsi, la syntaxe de base pour écrire des fonctions dans un script Bash sera
Syntaxe:
# for defining function_name(){ commands ..... } function_name # for calling> En plus de cela, nous pouvons également avoir des fonctions avec des arguments passants et des valeurs de retour. Parlons-en maintenant.
Fonctions avec passage d'arguments
Nous pouvons ajouter des arguments ou des paramètres à une fonction et transmettre des données en les utilisant à la fonction afin que la fonction puisse agir avec ces données. Dans les scripts bash, nous pouvons utiliser la syntaxe suivante pour écrire une fonction avec des arguments de passage.
Syntaxe des fonctions avec passage d'arguments :
#for defining function_name(){ ..... parameter_1 = parameter_2 = . . . parameter_n = $n .... commands ..... } #for calling function_name p1 p2 ....pn> Nous pouvons passer directement les arguments lors de l'appel de la fonction et y accéder avec 1$, 2$…..n$ au sein de la fonction. Voyons un exemple pour une compréhension plus claire.
Exemple de fonctions avec passage d'arguments :
#!/bin/bash add_two_num(){ local sum=$((+)) echo sum of and is $sum } add_two_num 2 3> Sortie des fonctions avec passage d'arguments :
sum of 2 and 3 is 5>
Ci-dessus se trouve un script pour ajouter deux nombres. Ici, nous avons fourni 2 et 3 comme arguments. Nous y avons accédé en utilisant 1 $ et 2 $ à partir de la fonction, avons calculé leur somme et l'avons imprimée sur le terminal. Vous trouverez ci-dessous la représentation du shell du terminal après l'exécution du script -
Fonctions avec valeurs de retour
Une valeur de retour est produite et renvoyée à la méthode appelante par une fonction une fois son exécution terminée. Une valeur de retour peut être utilisée pour partager le résultat produit ou un code d'état indiquant si une fonction a été exécutée avec succès ou non. Dans les scripts Bash, la valeur de retour est affectée au $? variable.
types de données SQL
Un exemple de la même chose est donné ci-dessous –
Exemple de fonctions avec des valeurs de retour :
#!/bin/bash myfun(){ return 7 } myfun echo The return value is $?> Sortie des fonctions avec des valeurs de retour :
The return value is 7>
Vous trouverez ci-dessous la sortie du shell du terminal après l'exécution du script -
Maintenant, modifions la somme précédente du script à deux nombres.
Code modifié :
#!/bin/bash myfun(){ return $((+)) } add_two_num 2 3 echo The sum is $?> Sortie du code modifié :
The sum is 5>
Le code ci-dessus est désormais un exemple d'utilisation des paramètres et de la valeur de retour dans une fonction de script Bash.
Vous trouverez ci-dessous la représentation du shell du terminal après l'exécution du script -
Portée variable
La portée dans un programme ou un script est une région où les variables existent. Si une variable est déclarée à l’intérieur d’une fonction alors c’est généralement une variable locale et si elle est déclarée à l’extérieur alors c’est une variable globale. Dans le cas d'un script bash, ce concept est un peu différent, ici toute variable qu'elle soit écrite à l'intérieur d'une fonction ou à l'extérieur d'une fonction est par défaut une variable globale. Si nous voulons créer une variable locale, nous devons utiliser le mot-clé local.
Il est recommandé de toujours utiliser une variable locale dans une fonction pour éviter toute confusion inutile.
Un exemple de la même chose est donné ci-dessous –
dateformat.format
Exemple de portée variable :
#!/bin/bash var1='Apple' #global variable myfun(){ local var2='Banana' #local variable var3='Cherry' #global variable echo 'The name of first fruit is $var1' echo 'The name of second fruit is $var2' } myfun #calling function echo 'The name of first fruit is $var1' #trying to access local variable echo 'The name of second fruit is $var2' echo 'The name of third fruit is $var3'> Sortie de la portée variable :
The name of first fruit is Apple The name of second fruit is Banana The name of first fruit is Apple The name of second fruit is The name of third fruit is Cherry>
Ici, dans cet exemple ci-dessus, var2 est une variable locale, donc lorsque nous y accédons à partir de la fonction, tout se passe bien, mais lorsque nous essayons d'y accéder en dehors de la fonction, cela nous donne un résultat vide dans la sortie.
caractère java en entier
D'un autre côté, contrairement aux langages de programmation, même si var3 est défini à l'intérieur d'une fonction, il agit néanmoins comme une variable globale et est accessible en dehors de la fonction. Vous trouverez ci-dessous la représentation du shell du terminal après l'exécution du script -
Remplacement des commandes
Il est possible d'avoir une fonction portant le même nom que celui d'une commande. C'est utile si nous voulons exécuter une commande avec des options spécifiques ou si nous voulons en avoir une édition personnalisée.
Un exemple de la même chose est donné ci-dessous –
Exemple de commandes de remplacement :
#!/bin/bash #overriding command echo(){ builtin echo 'The name is : ' } echo 'Satyajit Ghosh'> Résultat des commandes prioritaires :
The name is : Satyajit Ghosh>
Ici, dans cet exemple, nous avons remplacé le écho commande. Maintenant, avant d'imprimer la chaîne donnée, il ajoute à la chaîne quelques mots supplémentaires, puis l'imprime. Vous trouverez ci-dessous la représentation du shell du terminal après l'exécution du script -