GNU/Linux >> Tutoriels Linux >  >> Linux

Bash ignorant l'erreur pour une commande particulière

La solution :

particular_script || true

Exemple :

$ cat /tmp/1.sh
particular_script()
{
    false
}

set -e

echo one
particular_script || true
echo two
particular_script
echo three

$ bash /tmp/1.sh
one
two

three ne sera jamais imprimé.

Aussi, je veux ajouter que lorsque pipefail est activé, il suffit que le shell pense que l'ensemble du tube a un code de sortie non nul lorsque l'une des commandes du tube a un code de sortie non nul (avec pipefail il doit être le dernier).

$ set -o pipefail
$ false | true ; echo $?
1
$ set +o pipefail
$ false | true ; echo $?
0

Ajoutez simplement || true après la commande où vous voulez ignorer l'erreur.


Ne vous arrêtez pas et enregistrez également le statut de sortie

Juste au cas où vous voudriez que votre script ne s'arrête pas si une commande particulière échoue et que vous souhaitiez également enregistrer le code d'erreur de la commande ayant échoué :

set -e
EXIT_CODE=0
command || EXIT_CODE=$?
echo $EXIT_CODE

Linux
  1. Astuces Bash pour tous les jours en ligne de commande

  2. Deux grandes utilisations de la commande cp :Raccourcis Bash

  3. Le but du mot-clé "do" dans Bash For Loops ?

  4. Bash Echo La ligne de commande exécutée sur la ligne de commande elle-même (pas dans un script) ?

  5. commande d'exportation bash

Commande Bash printf

Tutoriel de commande Linux echo pour débutants (5 exemples)

La commande Bash Echo expliquée avec des exemples sous Linux

Comment utiliser la commande echo dans les scripts Bash sous Linux

Dépannage de l'erreur "Bash :Commande introuvable" sous Linux

Utilisation de la commande Bash printf pour imprimer des sorties formatées