कुछ युक्तियों के साथ एक और उत्तर, किसी के लिए उपयोगी हो सकता है:
निम्नलिखित नियम के साथ अपने आदेशों को अलग करना याद रखें :
कमांड 1 और& command2 - इसका मतलब है, कि command2 निष्पादित किया जाएगा, केवल command1 सफलता अगर
कमांड 1 ;कमांड 2 - का मतलब है, कमांड 1 के परिणाम के बावजूद कमांड 2 को निष्पादित किया जाएगा
उदाहरण के लिए:
String run_tests = sh(script: "set +e && cd ~/development/tests/ && gmake test ;set -e;echo 0 ", returnStdout: true).trim()
println run_tests
विफल होने पर set -e
और सफलतापूर्वक echo 0
आदेशों के साथ निष्पादित किया जाएगा gmake test
( यदि आपके परीक्षण विफल हुए), जबकि निम्न कोड छीन लिया गया था:
String run_tests = sh(script: "set +e && cd ~/development/tests/ && gmake test && set -e && echo 0 ", returnStdout: true).trim()
println run_tests
एक सा गलत और आदेशों set -e
और echo 0
में && gmake test && set -e && echo 0
साथ, छोड़ दिया जाएगा println run_tests
बयान, कारण विफल gmake test
जेनकींस निर्माण रद्द कर देगा। वर्कअराउंड के रूप में आप स्विच कर सकते हैं returnStatus:true
, लेकिन फिर आप अपने कमांड से आउटपुट को याद करेंगे।