Bash Sorti sur l'erreur

Bash Sorti sur l'erreur
Un code d'état de sortie est renvoyé lorsqu'une commande Linux est exécutée à partir du terminal, soit la commande est réussie ou échouée. Ce code d'état peut être utilisé pour afficher le message d'erreur pour une exécution infructueuse ou effectuer une tâche particulière en utilisant le script shell. Le code d'état de sortie représente toujours un nombre. La valeur de ce code est 0 pour l'exécution réussie de toute commande Linux et il renvoie un nombre de 1 à 255 pour l'exécution infructueuse de la commande. Comment le code d'état existant peut être utilisé à partir du terminal et dans le script bash est affiché dans ce tutoriel.

Certains codes d'état d'erreur courants sont mentionnés ci-dessous.

Code Description commentaires
0 Cela indique une exécution réussie.
1 Il est utilisé pour attraper toutes les erreurs générales. «Diviser par zéro», «opération non autorisée» etc. peut être les messages d'erreur de ce code.
2 Il indique l'abus de coquilles intégrées. «Mot-clé manquant», «pas de fichier ou de répertoire de ce type» etc. peut être les messages d'erreur de ce code.
126 Il génère lorsque la commande n'est pas en mesure d'exécuter. Problème d'autorisation ou clé requise non disponible peut générer ce code d'état
127 Il génère normalement pour le problème du chemin de commande. «Commande introuvable» peut être le message de ce code d'erreur.
130 Il génère pour une erreur fatale. «Le script terminé par Ctrl + C» peut être le message de ce code.
255 * Il indique le code de sortie hors de portée.

Exemple-1: lecture du code de sortie du terminal

'$?'La variable shell peut être utilisée pour afficher le code de sortie de n'importe quelle commande. 'LS -LA' est une commande valide et il affiche la liste des fichiers et dossiers du répertoire de travail actuel. La valeur de '$?«sera 0 après avoir exécuté la commande« ls -La ». 'ls -xyz' est une commande invalide et '$?'reviendra 2 comme code d'erreur après avoir exécuté la commande.

$ ls -LA
$ echo $?
$ ls -xyz
$ echo $?

Exemple-2: lecture du code de sortie dans le script bash

Créer un fichier bash nommé read_file.shot avec le script suivant. Dans ce script, le nom du fichier sera pris comme entrée de l'utilisateur et, le nombre total de lignes, de mots et de caractères de ce fichier sera compté en utilisant la commande 'WC'. Si le nom de fichier est valide, la valeur de $ status_code est 0 et si le nom de fichier n'est pas valide, alors la valeur de $ status_code est 1.

read_file.shot

#!/ bac / bash
Echo "Entrez le nom de fichier"
Lire le nom de fichier
wc -lwc $ nom de fichier
status_code = $?
Echo "La sortie de la commande 'wc' est: $ status_code"

Exemple-3: Utilisation de la valeur de code de sortie pour effectuer une tâche spécifique

Créer un fichier bash nommé read_month.shot avec le code suivant. Ici, une valeur de date sera prise en entrée. Le nom du mois récupérera à partir de la valeur de date si la date d'entrée est valide autrement le message d'erreur «Date non valide» apparaîtra. La condition 'si' est utilisée dans le script pour vérifier le code d'état de sortie de la commande de date. Si la condition est vraie, le message de réussite et le nom du mois de la date seront imprimés. Si la condition est fausse, le code d'état du message de défaillance et de la sortie, 1 imprimera.

read_month.shot

#!/ bac / bash
Echo "Entrez une date dans le format: yyyy-mm-dd"
Lire Date_value
current_month = $ (date -d "$ date_value" '+% b')
Si [$? -Eq 0]
alors
Echo "La commande Date est exécutée avec succès"
Echo "Le mois en cours est $ current_month"
autre
Echo "La commande Date n'est pas exécutée avec succès"
sortie 1
Fi

Exécutez le script.

$ bash read_month.shot

Exemple-4: Utilisation && et || avec code de sortie

'&& "L'opérateur logique est utilisé pour réussir le code de sortie et' || ' L'opérateur logique est utilisé pour le code de sortie infructueux. La commande suivante imprimera «le fichier existe» si livre.SMS Le fichier existe dans l'emplacement actuel et imprimez «le fichier n'existe pas» si livre.SMS le fichier n'existe pas dans l'emplacement actuel.

$ Cat Book.txt && echo "Le fichier existe" || Echo "Le fichier n'existe pas"

Conclusion:

Différentes utilisations du code d'état de sortie sont affichées dans ce tutoriel. Hope, le lecteur obtiendra un concept clair sur le code de statut de sortie de Bash après avoir lu ce tutoriel.