La cosa es : Tengo un archivo de Python
Lo estoy ejecutando usando un script de shell llamado run.sh
contenido de run.sh

python test.py

Y en el archivo de Python estoy probando algo y si no coincide, salgo usando sys.exit (1). Puedo detectar esto en run.sh usando $? Pero el problema es que hay un script de shell maestro,

master.sh

Y run.sh se llama desde master.sh.
Mater.sh llama a varios scripts de shell desde adentro. es decir

sh run.sh
sh test.sh

Quiero asegurarme de que si run.sh falla, es decir, si el archivo python sale con sys.exit (1), entonces está atrapado en master.sh y no ejecuta el siguiente script de shell, es decir, no debería ejecutar la prueba. sh

0
Atif 16 oct. 2018 a las 20:47

2 respuestas

La mejor respuesta

Puedes hacer lo mismo que hiciste con run.sh, coge el return_code

En master.sh

sh run.sh
if [ $? == 0 ]
then sh test.sh
else
exit 1
fi
1
Mayank Porwal 16 oct. 2018 a las 17:54

Simplemente llame a la secuencia de comandos de esta manera: sh run.sh ¦¦ exit 1

0
Mayank Porwal 23 nov. 2018 a las 13:55