Bash: Exécuter un exécutable donnant un bon état de sortie


32

Je souhaite exécuter un fichier exécutable sous Linux et, quel que soit l'état de sortie renvoyé, je souhaite obtenir un bon état de sortie. (ie pas d'erreur.)

(C’est parce que j’utilise sh -exet que je veux que le script continue à fonctionner même si une commande (spécifique) échoue.)

Réponses:


47

Essayez ceci:

command || true

De man bash:

Le shell ne se ferme pas si la commande qui échoue fait partie de la liste de commandes immédiatement après un mot-clé while ou Until, une partie du test suivant les mots réservés if ou elif, une partie de toute commande exécutée dans une liste && ou sauf le commande suivant le dernier && ou ⎪⎪, toute commande d'un pipeline sauf le dernier, ou si la valeur de retour de la commande est inversée avec!.


aussi un bon :)
voretaq7

1

Essayez (executable ; exit 0)ou enveloppez-le dans un script shell qui quitte toujours 0.


1
Cela fonctionne bien dans la plupart des cas, mais cela crée un sous-shell, donc si, par exemple, (cd foo; exit 0)vous réussissez, vous ne vous retrouverez pas dans "foo" par la suite, car votre cwd est renvoyé à celui où vous vous trouviez auparavant. Cependant, cd foo || truevous laisserez dans "foo" si c'est réussi.
pause jusqu'à nouvel ordre.

bon point - si votre processus a des effets secondaires supplémentaires (définition de variables d'environnement, modification de répertoires, etc.), cela ne fonctionnera pas.
voretaq7
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.