Ce qui fait-il faire à bash?

Ce qui fait-il faire à bash?
Set -e est utilisé dans le bash pour arrêter l'exécution instantanément alors qu'une requête sort tout en ayant un statut non nul. Cette fonction est également utilisée lorsque vous avez besoin de connaître l'emplacement d'erreur dans le code en cours d'exécution. Continuons l'article pour développer le concept de «set -e» dans différents aspects des codes.

Installez les extensions de bash dans Linux. S'il est déjà installé, vous devez mettre à niveau la version car la version doit être supérieure à 4.

Exemple 1

Ici, nous avons besoin d'un fichier ayant le code bash. Alors, créez un fichier à l'aide d'une commande «Touch» en utilisant le terminal Ubuntu. Qui est écrit comme:

$ touch file1.shot

Nous allons adopter deux approches ici. L'un consiste à utiliser «set -e» en dehors du corps de fonction tandis que l'autre est de l'utiliser à l'intérieur de la fonction. Considérez un fichier «Fichier1.sh ”. Nous avons besoin du fichier avec une extension de .sh comme nous écrivons le code en langue bash. Cet exemple traite de l'ajout d'une fonction nommée «HELO».

Dans cette fonction, nous voulons imprimer une ligne, nous venons donc d'utiliser la commande echo ici pour afficher le message. Comme nous avons déclaré une fonction ici afin que l'appel de fonction doit être requis ici. Donc, à la fin, nous avons utilisé le nom de la fonction comme un appel de fonction. Ici, «set -e» est utilisé au début signifie à l'extérieur du corps de la fonction.

Set -e

SET -e se rapporte à l'écriture ou à la définition d'une erreur affichant le code.

Nous avons utilisé un éditeur de texte simple qui est présent dans le système Ubuntu par défaut.

$ bash Fichier1.shot

Maintenant, vous dirigeant vers la deuxième approche où nous devons utiliser «set -e» à l'intérieur de la fonction. Nous verrons la différence entre ces approches. Modifiez le code donné en remplaçant «set -e» de l'extérieur du corps de la fonction à l'intérieur du corps de la fonction «HELO», tandis que le code restant est le même que le précédent. Vous pouvez vérifier à partir de l'image insérée.

Exécutez à nouveau la même commande sur le terminal pour obtenir le résultat.

Cela signifie que «set -e» ne provoque aucun changement lorsqu'il est utilisé à l'intérieur ou à l'extérieur du corps de la fonction.

Exemple 2

C'est un exemple assez facile dans lequel après la déclaration d'extension de bash dans un fichier, nous avons utilisé «set -e» dans le corps extérieur de la fonction. Le «set -e» permet au terminal de lancer une exception où il trouve l'erreur, puis l'exécution du code d'arrêt. Ensuite, la fonction d'erreur est déclarée ici. Le seul but de cette fonction est d'afficher le message d'erreur avec le numéro de ligne qui contient l'erreur.

Il y a quelque chose de spécial dans cet exemple qui est l'utilisation du mot-clé «trap». Ce mot-clé permet d'utiliser une fonction intégrée ERR qui prend le nombre d'erreur de ligne, puis le transmettre à la fonction d'erreur. A ce but de l'identification et de l'affichage des erreurs, nous devons ajouter une instruction ou une variable qui n'est pas incluse dans Bash ou utiliser une ligne significative avec la modification des valeurs de syntaxe.

Piège «Erreur $ linenoe» ERR

Selon ce code, le résultat doit afficher l'erreur à la ligne 10.

Exécutez le code sur le terminal en utilisant le fichier. Vous pouvez raconter que le nom du fichier est affiché avec le numéro de ligne et une exception est lancée qui montre que la commande n'est pas trouvée. Deuxièmement, avoir un message de la fonction pour représenter le numéro de ligne où une erreur s'est produite.

Exemple 3

Cet exemple traite de l'utilisation de deux fichiers bash. L'un est fichier1.sh et l'autre est file2.shot. Considérez le fichier2.SH d'abord. Ici, nous avons utilisé «set -e» et il n'est pas utilisé dans l'autre fichier. De même, dans ce fichier, nous avons utilisé l'appel de fonction, tandis que l'ensemble du corps de fonction est déclaré dans l'autre fichier. Nous avons lié les deux fichiers en utilisant le mot-clé «source» afin que l'appel de fonction que nous avons fait ici puisse exécuter la fonction de l'autre fichier.

4 Source «Fichier1.sh ”

Après cela, dans l'appel de la fonction, un mot est également affiché.

Echo «Notification: $ (HELO)»

«HELO» est le nom de la fonction.

Maintenant, considérez l'autre fichier de fichier1.shot. Dans ce fichier, la fonction HELO1 () est déclarée. Dans le corps de la fonction, nous avons affiché un message uniquement.

Echo «Attendez: 1 $»

Se déplaçant vers l'autre fonction qui est helo (). C'est la même fonction qui a été appelée par le nom dans le premier fichier que nous avons discuté. À l'intérieur de cette fonction, nous avons à nouveau utilisé un appel de fonction HELO1 (). Ceci est déclaré au-dessus de la fonction actuelle dans le même fichier, nous n'avons donc pas besoin de lier les deux fichiers en utilisant le mot-clé «source». Avec l'appel de fonction, un message s'affiche:

HELO1 "Il existe une erreur"

La performance entière se fait de telle manière que nous exécuterons le fichier2.sh dans le terminal. Ainsi, le premier appel de fonction sera exécuté et le contrôle se déplacera vers la fonction helo () dans le fichier1.shot. Qui exécutera cet appel de fonction et maintenant le contrôle se déplacera vers la première fonction du fichier. Voyons comment la sortie est affichée.

$ BASH Fichier.shot

Maintenant, vous pouvez voir que le mot est d'abord affiché à partir du fichier2.sh, puis le message de fonction «hele1 ()» qui est «attendre» puis le message de fonction helo (). Comme nous avons utilisé la «sortie 1», le contrôle n'y est pas donné, il n'y a donc pas de rôle de «set -e». Si l'appel de fonction n'est pas géré, il doit y avoir une erreur pour l'emporter.

Exemple 4

Cet exemple contient une compréhension complète de «set -e». Prenez quatre fonctions dans cet exemple. Comme nous savons que l'ensemble intégré est utilisé pour quitter le code lorsqu'il obtient un statut non nul. Dans cet exemple, nous avons utilisé «0» pour une seule fonction qui est la première. Toutes les autres fonctions retournent 1. Cela signifie que le code quittera l'exécution après l'affichage de la première fonction. Mais ce ne sera pas. Ici, nous avons utilisé «set + e» qui est l'opposé de «set -e». Chaque fois que «set -e» a forcé le code pour mettre fin à l'exécution, l'inverse s'y opposera chaque fois qu'il rencontre la valeur non nulle. «Set + E» est déclaré avant l'appel de fonction des deux premières fonctions et «set -e» avant l'appel de fonction des deux dernières méthodes.

Définir + E

Maintenant, les deux premières fonctions seront exécutées. Dans la deuxième fonction, car il s'agit d'une valeur non nulle, le compilateur obligera à lancer une erreur mais «set + e» neutralisera la valeur. Lorsque c'est le temps de la troisième fonction, les deux messages seront affichés par Echo mais lorsque le contrôle passe à la valeur «Return 1», le code s'arrêtera. Comme ici, nous n'avons pas utilisé «set + e». C'est pourquoi la 4ème fonction n'est pas exécutée ici.

Exécutez le code dans le terminal afin que vous verrez la valeur résultante.

Conclusion

Ce tutoriel montre le fonctionnement de "set -e". Dans les exemples, c'est ainsi qu'il est utilisé pour terminer l'exécution. Cependant, l'adversaire «set + e» est également utilisé ici pour illustrer le travail.