Jadi saya punya skrip kecil untuk menjalankan beberapa tes.
javac *.java && java -ea Test
rm -f *.class
Sekarang masalah dengan ini adalah ketika saya menjalankan skrip ./test
, itu akan mengembalikan kode keluar yang sukses bahkan jika tes gagal karena rm -f *.class
berhasil.
Satu-satunya cara saya bisa memikirkan untuk melakukan apa yang saya inginkan terasa jelek bagi saya:
javac *.java && java -ea Test
test_exit_code=$?
rm -f *.class
if [ "$test_exit_code" != 0 ] ; then false; fi
Tapi ini sepertinya masalah umum - lakukan tugas, bersihkan, lalu kembalikan kode keluar dari tugas semula.
Apa cara paling idiomatis untuk melakukan ini (dalam bash atau hanya shell pada umumnya)?
eval
selalu menjadi favorit penggemar.