En bash, si une commande échoue, exécutez une autre commande

En bash, si une commande échoue, exécutez une autre commande
Saviez-vous que chaque commande que vous exécutez dans Linux a un code de sortie? C'est vrai même si une commande se termine avec une erreur. Les valeurs de sortie sont des valeurs entières qui varient de 0 à 255. Une valeur non nulle, je.e., Une valeur supérieure à 0, indique que la commande sort avec une erreur.

Si une commande s'exécute avec succès dans Bash, il a un code de sortie 0. Pour la commande introuvable, le code de sortie est 127. Par conséquent, nous pouvons utiliser le code de sortie pour effectuer une action spécifique.

Ce tutoriel vous donnera quelques conseils et astuces que vous pouvez utiliser pour effectuer une action basée sur le code de sortie de la commande précédente.

En utilisant l'opérateur ou

Une façon d'exécuter une commande si la commande précédente échoue est d'utiliser l'opérateur ou. Étant donné qu'un opérateur ou un opérateur ne nécessite qu'une seule condition pour être vraie, nous pouvons exécuter la syntaxe suivante:

$ Command1 || Commad2

Dans la syntaxe ci-dessus, la deuxième commande s'exécutera même si la première commande échoue. Notez que cela est différent de l'utilisation et de l'opérateur car il nécessite que la première commande s'exécute avec succès.

Par exemple:

$ ping -c lhint || écho au "succès";

Dans l'exemple ci-dessus, Echo fonctionnera toujours malgré l'erreur causée par la résolution du nom dans la commande ping.

Voici une capture d'écran illustrant ceci:

NOTE: Vous pouvez lier plusieurs commandes en utilisant des opérateurs bash pour obtenir le meilleur résultat. Par exemple, vous pouvez permettre au sommeil d'exécuter uniquement si le ping et l'écho exécutent avec succès.

$ Ping -C 1 Linuxhint.com && echo "Success" || dormir 100;

Dans l'exemple ci-dessus, si un ping ou un écho échoue, le sommeil ne s'exécute pas.

Cela peut être utile si la commande suivante repose sur la sortie de la commande précédente.

Utilisation du code de sortie

Bash nous permet d'obtenir le code de sortie de la commande précédemment exécutée. Pour afficher le code de sortie, entrez la commande:

$ echo $?

Nous obtenons 0 pour une commande exécutée correctement et 127 pour une commande introuvable dans l'exemple ci-dessus.

Pour utiliser le code de sortie pour une action, nous faisons:

#!/ bac / bash
Si [[$? -Eq 0]];
alors
écho "succès"
autre:
écho "échouer"
Fi

Dans le script ci-dessus, nous vérifions si le code de sortie est égal à 0, indiquant la commande exécutée avec succès. Si vrai, exécutez une commande. Dans ce cas, écho «succès."Sinon, écho" échouer."

Conclusion

Dans ce tutoriel rapide, nous avons utilisé des opérateurs bash et des codes de sortie pour exécuter une commande si la commande précédente échoue ou réussit.