logo

Fonctions de bash

Dans cette rubrique, nous avons démontré les bases des fonctions bash et leur fonctionnement dans les scripts shell bash.

Les fonctions des scripts bash sont une excellente option pour réutiliser le code. Une fonction Bash peut être définie comme un ensemble de commandes qui peuvent être appelées plusieurs fois dans un script bash. Le but de la fonction bash est de vous aider à rendre vos scripts plus lisibles et à éviter d'écrire encore et encore le même code. Cela permet également aux développeurs de diviser un code complexe et long en petites parties qui peuvent être appelées chaque fois que nécessaire. Les fonctions peuvent être appelées à tout moment et à plusieurs reprises, ce qui nous permettra de réutiliser, d'optimiser et de minimiser le code.

Voici quelques points clés sur les fonctions bash :

  • Une fonction doit être déclarée dans le script shell avant de pouvoir l'utiliser.
  • Les arguments peuvent être transmis aux fonctions et accessibles à l'intérieur de la fonction sous la forme , , etc.
  • Des variables locales peuvent être affectées au sein de la fonction, et la portée de ces variables sera uniquement cette fonction particulière.
  • Les commandes intégrées du shell Bash peuvent être remplacées à l'aide de fonctions.

Syntaxe

La syntaxe de déclaration d'une fonction bash peut être définie sous deux formats :

1. La première méthode commence par le nom de la fonction, suivi de parenthèses. C’est la méthode la plus préférée et la plus couramment utilisée :

 function_name () { commands } 

La version sur une seule ligne peut être mentionnée comme ci-dessous :

 function_name () { commands; } 

2. La deuxième méthode commence par le mot réservé à la fonction, suivi du nom de la fonction :

itérer une liste en Java
 function function_name { commands } 

La version sur une seule ligne peut être mentionnée comme ci-dessous :

 function function_name { commands; } 

Par rapport à la plupart des langages de programmation, les fonctions Bash sont quelque peu limitées. Comprenons le concept à l'aide de quelques exemples :

Exemple : méthode 1

 #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

Sortir

 Welcome to Javatpoint. 

Exemple : méthode 2

 #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

Sortir

 Welcome to Javatpoint. 

Passer des arguments

Comme la plupart des langages de programmation, nous pouvons également transmettre les arguments et traiter les données dans des fonctions bash. Nous pouvons insérer les données dans la fonction de la même manière que en passant des arguments de ligne de commande à un script bash.

comment appeler une méthode en java

Pour transmettre un nombre quelconque d'arguments à la fonction bash, nous devons les insérer juste après le nom de la fonction. Nous devons appliquer des espaces entre le nom de la fonction et les arguments. Ce sera également un excellent choix d'utiliser des guillemets doubles autour des arguments pour éviter toute erreur d'analyse des arguments contenant des espaces.

Voici quelques points clés sur la transmission d'arguments aux fonctions bash :

  • Les arguments donnés sont accessibles sous la forme , , ... $n, correspondant à la position des arguments après le nom de la fonction.
  • La variable

    Dans cette rubrique, nous avons démontré les bases des fonctions bash et leur fonctionnement dans les scripts shell bash.

    Les fonctions des scripts bash sont une excellente option pour réutiliser le code. Une fonction Bash peut être définie comme un ensemble de commandes qui peuvent être appelées plusieurs fois dans un script bash. Le but de la fonction bash est de vous aider à rendre vos scripts plus lisibles et à éviter d'écrire encore et encore le même code. Cela permet également aux développeurs de diviser un code complexe et long en petites parties qui peuvent être appelées chaque fois que nécessaire. Les fonctions peuvent être appelées à tout moment et à plusieurs reprises, ce qui nous permettra de réutiliser, d'optimiser et de minimiser le code.

    Voici quelques points clés sur les fonctions bash :

    • Une fonction doit être déclarée dans le script shell avant de pouvoir l'utiliser.
    • Les arguments peuvent être transmis aux fonctions et accessibles à l'intérieur de la fonction sous la forme $1, $2, etc.
    • Des variables locales peuvent être affectées au sein de la fonction, et la portée de ces variables sera uniquement cette fonction particulière.
    • Les commandes intégrées du shell Bash peuvent être remplacées à l'aide de fonctions.

    Syntaxe

    La syntaxe de déclaration d'une fonction bash peut être définie sous deux formats :

    1. La première méthode commence par le nom de la fonction, suivi de parenthèses. C’est la méthode la plus préférée et la plus couramment utilisée :

     function_name () { commands } 

    La version sur une seule ligne peut être mentionnée comme ci-dessous :

     function_name () { commands; } 

    2. La deuxième méthode commence par le mot réservé à la fonction, suivi du nom de la fonction :

     function function_name { commands } 

    La version sur une seule ligne peut être mentionnée comme ci-dessous :

     function function_name { commands; } 

    Par rapport à la plupart des langages de programmation, les fonctions Bash sont quelque peu limitées. Comprenons le concept à l'aide de quelques exemples :

    Exemple : méthode 1

     #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

    Sortir

     Welcome to Javatpoint. 

    Exemple : méthode 2

     #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

    Sortir

     Welcome to Javatpoint. 

    Passer des arguments

    Comme la plupart des langages de programmation, nous pouvons également transmettre les arguments et traiter les données dans des fonctions bash. Nous pouvons insérer les données dans la fonction de la même manière que en passant des arguments de ligne de commande à un script bash.

    Pour transmettre un nombre quelconque d'arguments à la fonction bash, nous devons les insérer juste après le nom de la fonction. Nous devons appliquer des espaces entre le nom de la fonction et les arguments. Ce sera également un excellent choix d'utiliser des guillemets doubles autour des arguments pour éviter toute erreur d'analyse des arguments contenant des espaces.

    Voici quelques points clés sur la transmission d'arguments aux fonctions bash :

    • Les arguments donnés sont accessibles sous la forme $1, $2, $3 ... $n, correspondant à la position des arguments après le nom de la fonction.
    • La variable $0 est réservée au nom de la fonction.
    • La variable $# est utilisée pour contenir le nombre d'arguments/paramètres de position donnés à la fonction.
    • Les variables $* et $@ sont utilisées pour contenir tous les arguments/paramètres donnés à la fonction.
      • Lorsque $* est utilisé avec des guillemets doubles (c'est-à-dire '$*' ), il se développe en une seule chaîne séparée par l'espace. Par exemple, « $1 $2 $n etc. ».
      • Lorsque $@ est utilisé avec des guillemets doubles (c'est-à-dire '$@' ), il se développe en une chaîne séparée. Par exemple, « $1 », « $2 », « $n », etc.
      • Lorsque $* et $# ne sont pas utilisés avec les guillemets doubles, ils sont tous deux identiques.

    Voici le code qui illustre la procédure permettant de transmettre des arguments aux fonctions et d'accéder aux arguments à l'intérieur de la fonction.

    Script bash

     #!/bin/bash #Script to pass and access arguments function_arguments() { echo $1 echo $2 echo $3 echo $4 echo $5 } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

    Sortir

    Fonctions de bash

    Dans ce script, nous avons ajouté les valeurs « Nous », « bienvenue », « vous », « on » et « Javapoint » après avoir appelé les function_arguments. Ces valeurs sont transmises au arguments_fonctions en tant que paramètres et stockés dans une variable locale. Cependant, contrairement à d'autres langages, l'interpréteur stocke les valeurs transmises dans des variables prédéfinies, qui sont ensuite nommées en fonction de la séquence de paramètres transmis.

    Par exemple,

    'Nous' le mot est stocké dans la variable 1 .
    'accueillir' le mot est stocké dans la variable 2 .
    'toi' le mot est stocké dans la variable 3 .
    'sur' le mot est stocké dans la variable 4 .
    'Javapoint' le mot est stocké dans la variable 5 .

    Portée variable

    Les variables globales sont définies comme les variables accessibles n'importe où dans le script, quelle que soit la portée. Par défaut, toutes les variables sont définies comme variables globales, même si elles sont déclarées à l'intérieur de la fonction. Nous pouvons également créer des variables en tant que variable locale. Les variables locales peuvent être déclarées dans le corps de la fonction avec l'attribut ?local? mot-clé lorsqu'ils sont attribués pour la première fois. Ils ne sont accessibles qu’à l’intérieur de cette fonction. Nous pouvons créer des variables locales du même nom dans différentes fonctions. Pour ajouter une variable locale, nous pouvons utiliser la syntaxe suivante :

     local var_name= 

    Pour mieux comprendre le fonctionnement de la portée des variables dans les scripts Bash, consultez l'exemple suivant :

    Script bash

     #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

    Sortir

    Fonctions de bash

    Selon le résultat, si nous définissons une variable locale dans le corps de la fonction avec le même nom qu'une variable globale existante, elle aura alors priorité sur la variable globale. Les variables globales peuvent être modifiées dans la fonction.

    Valeurs de retour

    La plupart des langages de programmation ont pour concept de renvoyer une valeur pour les fonctions. Cela signifie que la fonction doit renvoyer les données à l'emplacement appelant d'origine. Contrairement aux fonctions des « vrais » langages de programmation, la fonction Bash ne permet pas de renvoyer une valeur lorsqu'elle est appelée. Cependant, ils nous permettent de définir un statut de retour similaire à la façon dont un programme ou une commande se termine avec un statut de sortie. Lorsqu'une fonction bash se termine, sa valeur de retour est le statut de la dernière instruction exécutée dans la fonction. Il renvoie 0 pour le statut de réussite et un nombre décimal différent de zéro compris entre 1 et 255 en cas d'échec.

    L'état du retour peut être indiqué à l'aide du mot-clé 'return' et il est affecté à la variable $?. L'instruction return termine la fonction et fonctionne comme l'état de sortie de la fonction.

    Par exemple, considérons le code suivant :

    Script bash

     #!/bin/bash #Setting up a return status for a function print_it () { echo Hello $1 return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

    Sortir

    Fonctions de bash

    Une autre meilleure option pour renvoyer une valeur à partir d'une fonction consiste à envoyer la valeur à sortie standard en utilisant écho ou imprimer commandes, comme indiqué ci-dessous :

    Script bash

     #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

    Sortir

     Welcome to Javatpoint. 

    Remplacement des commandes

    Nous avons la possibilité de remplacer les commandes bash en créant une fonction portant le même nom que la commande que nous allons remplacer. Par exemple, si nous voulons remplacer la commande « echo », nous devons alors créer une fonction portant le nom « echo ».

    Ce concept de remplacement des commandes bash peut être utile dans certains scénarios, par exemple lorsque nous souhaitons utiliser une commande avec des options spécifiques. De plus, lorsque nous n'aimons pas fournir à la commande entière des options à plusieurs reprises dans le script. Dans de tels cas, nous pouvons remplacer la commande bash intégrée par une commande avec des options. Comprenons maintenant le concept de remplacement des commandes dans Bash Shell Scripting à l'aide de quelques exemples :

    Exemple

    Dans cet exemple, nous avons remplacé la commande « echo » et ajouté l'horodatage sous la forme d'un argument à la commande « echo ».

    Script bash

     #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo $1 } echo 'Welcome to Javatpoint.' 

    Sortir

    Fonctions de bash

    Conclusion

    Dans ce sujet, nous avons présenté la fonction Bash. Une fonction Bash est considérée comme un bloc de code réutilisable développé pour effectuer une opération spécifique. Une fois défini, il peut être appelé plusieurs fois au sein d'un script.


    est réservée au nom de la fonction.
  • La variable $# est utilisée pour contenir le nombre d'arguments/paramètres de position donnés à la fonction.
  • Les variables $* et $@ sont utilisées pour contenir tous les arguments/paramètres donnés à la fonction.
    • Lorsque $* est utilisé avec des guillemets doubles (c'est-à-dire '$*' ), il se développe en une seule chaîne séparée par l'espace. Par exemple, « $n etc. ».
    • Lorsque $@ est utilisé avec des guillemets doubles (c'est-à-dire '$@' ), il se développe en une chaîne séparée. Par exemple, «  », «  », « $n », etc.
    • Lorsque $* et $# ne sont pas utilisés avec les guillemets doubles, ils sont tous deux identiques.

Voici le code qui illustre la procédure permettant de transmettre des arguments aux fonctions et d'accéder aux arguments à l'intérieur de la fonction.

Script bash

compteur java
 #!/bin/bash #Script to pass and access arguments function_arguments() { echo  echo  echo  echo  echo  } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

Sortir

Fonctions de bash

Dans ce script, nous avons ajouté les valeurs « Nous », « bienvenue », « vous », « on » et « Javapoint » après avoir appelé les function_arguments. Ces valeurs sont transmises au arguments_fonctions en tant que paramètres et stockés dans une variable locale. Cependant, contrairement à d'autres langages, l'interpréteur stocke les valeurs transmises dans des variables prédéfinies, qui sont ensuite nommées en fonction de la séquence de paramètres transmis.

Par exemple,

'Nous' le mot est stocké dans la variable 1 .
'accueillir' le mot est stocké dans la variable 2 .
'toi' le mot est stocké dans la variable 3 .
'sur' le mot est stocké dans la variable 4 .
'Javapoint' le mot est stocké dans la variable 5 .

Portée variable

Les variables globales sont définies comme les variables accessibles n'importe où dans le script, quelle que soit la portée. Par défaut, toutes les variables sont définies comme variables globales, même si elles sont déclarées à l'intérieur de la fonction. Nous pouvons également créer des variables en tant que variable locale. Les variables locales peuvent être déclarées dans le corps de la fonction avec l'attribut ?local? mot-clé lorsqu'ils sont attribués pour la première fois. Ils ne sont accessibles qu’à l’intérieur de cette fonction. Nous pouvons créer des variables locales du même nom dans différentes fonctions. Pour ajouter une variable locale, nous pouvons utiliser la syntaxe suivante :

 local var_name= 

Pour mieux comprendre le fonctionnement de la portée des variables dans les scripts Bash, consultez l'exemple suivant :

disposition de la grille

Script bash

 #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

Sortir

Fonctions de bash

Selon le résultat, si nous définissons une variable locale dans le corps de la fonction avec le même nom qu'une variable globale existante, elle aura alors priorité sur la variable globale. Les variables globales peuvent être modifiées dans la fonction.

Valeurs de retour

La plupart des langages de programmation ont pour concept de renvoyer une valeur pour les fonctions. Cela signifie que la fonction doit renvoyer les données à l'emplacement appelant d'origine. Contrairement aux fonctions des « vrais » langages de programmation, la fonction Bash ne permet pas de renvoyer une valeur lorsqu'elle est appelée. Cependant, ils nous permettent de définir un statut de retour similaire à la façon dont un programme ou une commande se termine avec un statut de sortie. Lorsqu'une fonction bash se termine, sa valeur de retour est le statut de la dernière instruction exécutée dans la fonction. Il renvoie 0 pour le statut de réussite et un nombre décimal différent de zéro compris entre 1 et 255 en cas d'échec.

L'état du retour peut être indiqué à l'aide du mot-clé 'return' et il est affecté à la variable $?. L'instruction return termine la fonction et fonctionne comme l'état de sortie de la fonction.

Par exemple, considérons le code suivant :

Script bash

 #!/bin/bash #Setting up a return status for a function print_it () { echo Hello  return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

Sortir

Fonctions de bash

Une autre meilleure option pour renvoyer une valeur à partir d'une fonction consiste à envoyer la valeur à sortie standard en utilisant écho ou imprimer commandes, comme indiqué ci-dessous :

chaînage avant

Script bash

 #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

Sortir

 Welcome to Javatpoint. 

Remplacement des commandes

Nous avons la possibilité de remplacer les commandes bash en créant une fonction portant le même nom que la commande que nous allons remplacer. Par exemple, si nous voulons remplacer la commande « echo », nous devons alors créer une fonction portant le nom « echo ».

Ce concept de remplacement des commandes bash peut être utile dans certains scénarios, par exemple lorsque nous souhaitons utiliser une commande avec des options spécifiques. De plus, lorsque nous n'aimons pas fournir à la commande entière des options à plusieurs reprises dans le script. Dans de tels cas, nous pouvons remplacer la commande bash intégrée par une commande avec des options. Comprenons maintenant le concept de remplacement des commandes dans Bash Shell Scripting à l'aide de quelques exemples :

Exemple

Dans cet exemple, nous avons remplacé la commande « echo » et ajouté l'horodatage sous la forme d'un argument à la commande « echo ».

Script bash

 #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo  } echo 'Welcome to Javatpoint.' 

Sortir

Fonctions de bash

Conclusion

Dans ce sujet, nous avons présenté la fonction Bash. Une fonction Bash est considérée comme un bloc de code réutilisable développé pour effectuer une opération spécifique. Une fois défini, il peut être appelé plusieurs fois au sein d'un script.