Bash: ejecuta un ejecutable que da un buen estado de salida

32

Quiero ejecutar un ejecutable en Linux y, independientemente del estado de salida que devuelva, quiero devolver un buen estado de salida. (es decir, sin error)

(Esto se debe a que estoy usando sh -exy quiero que el script siga ejecutándose incluso si falla un comando (específico)).

Ram Rachum
fuente

Respuestas:

47

Prueba esto:

command || true

De man bash:

El shell no sale si el comando que falla es parte de la lista de comandos inmediatamente después de un tiempo o hasta la palabra clave, parte de la prueba después de las palabras reservadas if o elif, parte de cualquier comando ejecutado en una lista && o ⎪⎪ excepto el después del comando && o ⎪⎪ final, cualquier comando en una tubería pero el último, o si el valor de retorno del comando se invierte con!.

Pausado hasta nuevo aviso.
fuente
también una buena :)
voretaq7
1

Pruebe (executable ; exit 0)o, alternativamente, envuélvalo en un script de shell que siempre salga de 0.

voretaq7
fuente
1
Esto funciona bien para la mayoría de los casos, pero configura una subshell, por lo que si, por ejemplo, (cd foo; exit 0)tiene éxito, no terminará en "foo" después ya que su cwd regresa a la que estaba anteriormente. Sin embargo, cd foo || truete dejará en "tonto" si tiene éxito.
Pausado hasta nuevo aviso.
Buen punto: si su proceso tiene efectos secundarios adicionales (configuración de variables de entorno, cambio de directorios, etc.), esto no funcionará.
voretaq7