GNU/Linux >> Tutoriels Linux >  >> Linux

Comment quitter si une commande a échoué ?

Les autres réponses ont bien couvert la question directe, mais vous pouvez également être intéressé par l'utilisation de set -e . Avec cela, toute commande qui échoue (en dehors de contextes spécifiques comme if tests) entraînera l'abandon du script. Pour certains scripts, c'est très utile.


Essayez :

my_command || { echo 'my_command failed' ; exit 1; }

Quatre changements :

  • Modifier && à ||
  • Utilisez { } à la place de ( )
  • Introduire ; après exit et
  • espaces après { et avant }

Puisque vous voulez imprimer le message et quitter uniquement lorsque la commande échoue (sortie avec une valeur non nulle), vous avez besoin d'un || pas un && .

cmd1 && cmd2

exécutera cmd2 quand cmd1 réussit (valeur de sortie 0 ). Où comme

cmd1 || cmd2

exécutera cmd2 quand cmd1 échoue (valeur de sortie différente de zéro).

Utilisation de ( ) fait que la commande à l'intérieur s'exécute dans un sous-shell et en appelant un exit à partir de là, vous quittez le sous-shell et non votre shell d'origine, donc l'exécution continue dans votre shell d'origine.

Pour surmonter cela, utilisez { }

Les deux derniers changements sont requis par bash.


Linux
  1. Comment renommer des fichiers sous Linux

  2. Comment utiliser la commande Su sous Linux

  3. Comment programmer une commande Rsync ?

  4. Comment fonctionne la commande Exit sur un terminal Unix ?

  5. `$?` ? Est-ce une variable ?

Comment utiliser la commande Linux SS

Comment supprimer un répertoire sous Linux

Comment utiliser la commande Linux nohup

Commande de sortie Bash et codes de sortie

Comment utiliser la commande PS

Comment utiliser la commande TOP