2010-08-13 12 views

Respuesta

364

Tal vez usted quiere set -e:

http://www.davidpashley.com/articles/writing-robust-shell-scripts.html#id2382181

Esto le indica a Bash que debería salir de la secuencia de comandos si ninguna instrucción devuelve un valor verdadero no-retorno. El beneficio de usar -e es que evita que los errores se conviertan en problemas graves cuando podrían haberse detectado antes. De nuevo, para facilitar la lectura, puede usar set -o errexit.

+62

Tenga en cuenta 'set -e' gotchas: http://mywiki.wooledge.org/BashFAQ/105 – Kris

+1

@Kris Gracias, esto me mordió en linux mint. sale silenciosamente del script sin mensaje. así que eliminé el set -e uso. –

+0

@LukeW esto es normal. Sin embargo, el código de salida será distinto de cero, lo que indica un error. También cualquier programa que falla normalmente imprime un mensaje de error por sí mismo, intente con solo shebang + 'set -e' + e.g. 'ls nope'. Obtiene un mensaje de error claro y las secuencias de comandos fallan temprano. Excelente software – vidstige