Así que tengo un pequeño script para ejecutar algunas pruebas.
javac *.java && java -ea Test
rm -f *.class
Ahora el problema con esto es que cuando ejecuto el script ./test
, devolverá un código de salida exitoso incluso si la prueba falla porque rm -f *.class
tiene éxito.
La única forma en que puedo pensar en hacer que haga lo que quiero me parece fea:
javac *.java && java -ea Test
test_exit_code=$?
rm -f *.class
if [ "$test_exit_code" != 0 ] ; then false; fi
Pero esto parece un problema común: realice una tarea, limpie y luego devuelva el código de salida de la tarea original.
¿Cuál es la forma más idiomática de hacer esto (en bash o simplemente conchas en general)?
eval
Siempre es un favorito de los fanáticos.