Cómo salir de todos los guiones de llamadas en bash?
Pregunta
Digamos que tengo los siguientes scripts
a.sh
echo in a
if test 1 -ne 2; then
echo oops
exit 1
fi
b.sh
echo in b
./a.sh
echo in b 2
Cuando se ejecuta b.sh, quiero que salga si a.sh salió. ¿Cómo puedo hacer esto?
(La salida de corriente es
in b
in a
oops
in b 2
Y eso no es lo que quiero)
Gracias, Rivka
Solución
verificación de estado de retorno de un comando, variable correspondiente es $?
.
Como alternativa, puede causar un cortocircuito usando command || exit
Otros consejos
echo in b
./a.sh && echo in b 2
Esto básicamente comprueba que el primer script no sale distinto de cero. Si eso es cierto, y sólo entonces será ejecutar la segunda función.
No creo que hay una manera que puede hacerlo sin comprobar explícitamente el estado de retorno de la subcapa, por ejemplo:.
# This will run b.sh, and if that exits with a non-zero status, we will also
# exit with that same status; otherwise, we continue.
./b.sh || echo $?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow