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.)

Ram Rachum
la source

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!.

En pause jusqu'à nouvel ordre.
la source
aussi un bon :)
voretaq7
1

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

voretaq7
la source
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