Si va a invocar la secuencia de comandos source
, puede usar return <x>
dónde <x>
estará el estado de salida de la secuencia de comandos (use un valor distinto de cero para error o falso). Pero si invoca una secuencia de comandos ejecutable (es decir, directamente con su nombre de archivo), la declaración de devolución dará como resultado una queja (mensaje de error "return: solo puede" regresar "de una función o secuencia de comandos fuente).
Si exit <x>
se usa en su lugar, cuando se invoca el script source
, dará como resultado la salida del shell que inició el script, pero un script ejecutable simplemente terminará, como se esperaba.
Para manejar cualquier caso en el mismo script, puede usar
return <x> 2> /dev/null || exit <x>
Esto manejará cualquier invocación que sea adecuada. Eso supone que utilizará esta declaración en el nivel superior del script. Aconsejaría que no salga directamente del script desde una función.
Nota: <x>
se supone que es solo un número.
1
constantemente. Si el script está destinado a ser ejecutado por otro script, es posible que desee definir su propio conjunto de código de estado con un significado particular. Por ejemplo,1
== pruebas fallidas,2
== la compilación falló. Si el script es parte de otra cosa, es posible que deba ajustar los códigos para que coincidan con las prácticas utilizadas allí. Por ejemplo, cuando parte del conjunto de pruebas ejecutado por automake, el código77
se usa para marcar una prueba omitida.