J'ai donc un petit script pour exécuter des tests.
javac *.java && java -ea Test
rm -f *.class
Maintenant, le problème est que lorsque j'exécute le script ./test
, il renvoie un code de sortie de réussite même si le test échoue car il rm -f *.class
réussit.
La seule façon dont je pouvais penser à lui faire faire ce que je veux me semble moche:
javac *.java && java -ea Test
test_exit_code=$?
rm -f *.class
if [ "$test_exit_code" != 0 ] ; then false; fi
Mais cela semble être un problème commun - effectuez une tâche, nettoyez, puis renvoyez le code de sortie de la tâche d'origine.
Quelle est la façon la plus idiomatique de le faire (en bash ou simplement en coquilles en général)?
eval
est toujours un favori des fans.