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

¿Fue útil?

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
scroll top