इसलिए मेरे पास कुछ परीक्षण चलाने के लिए थोड़ी स्क्रिप्ट है।
javac *.java && java -ea Test
rm -f *.class
अब इसके साथ समस्या यह है कि जब मैं स्क्रिप्ट चलाऊंगा ./test
, तो यह एक सफलता निकास कोड लौटा देगा भले ही परीक्षण विफल हो जाता है क्योंकि rm -f *.class
सफल होता है।
एक ही तरीका है कि मैं इसे पाने के बारे में सोच सकता हूं जो मैं चाहता हूं वह मुझे बदसूरत लगता है:
javac *.java && java -ea Test
test_exit_code=$?
rm -f *.class
if [ "$test_exit_code" != 0 ] ; then false; fi
लेकिन यह कुछ सामान्य समस्या की तरह लगता है - एक कार्य करना, सफाई करना, फिर मूल कार्य के निकास कोड को वापस करना।
ऐसा करने का सबसे मुहावरेदार तरीका क्या है (सामान्य तौर पर बैश या सिर्फ गोले में)?
eval
हमेशा एक प्रशंसक पसंदीदा है।