So I have a little script for running some tests.
javac *.java && java -ea Test
rm -f *.class
Now the problem with this is that when I run the script ./test, it will return a success exit code even if the test fails because rm -f *.class succeeds.
The only way I could think of getting it to do what I want feels ugly to me:
javac *.java && java -ea Test
test_exit_code=$?
rm -f *.class
if [ "$test_exit_code" != 0 ] ; then false; fi
But this seems like something of a common problem -- perform a task, clean up, then return the exit code of the original task.
What is the most idiomatic way of doing this (in bash or just shells in general)?