Bazı testler yapmak için küçük bir senaryom var.
javac *.java && java -ea Test
rm -f *.class
Şimdi bu sorun, betiği çalıştırdığınızda ./test
, test başarısız olsa bile bir başarı çıkış kodu döndürecek olmasıdır rm -f *.class
.
İstediğim şeyi yapmayı düşünebilmemin tek yolu bana çirkin geliyor:
javac *.java && java -ea Test
test_exit_code=$?
rm -f *.class
if [ "$test_exit_code" != 0 ] ; then false; fi
Ancak bu yaygın bir soruna benziyor - bir görev gerçekleştirin, temizleyin, ardından orijinal görevin çıkış kodunu döndürün.
Bunu yapmanın en deyimsel yolu nedir (genel olarak bash ya da genel olarak mermiler)?
eval
her zaman hayranların favorisidir.