อีกหนึ่งคำตอบพร้อมเคล็ดลับอาจเป็นประโยชน์สำหรับใครบางคน:
อย่าลืมแยกคำสั่งของคุณด้วยกฎต่อไปนี้ :
command1 && command2 - หมายถึง command2 นั้นจะถูกเรียกใช้งานก็ต่อเมื่อ command1 สำเร็จ
command1 ; command2 - หมายถึงคำสั่ง 2 นั้นจะถูกเรียกใช้งานแม้จะเป็นผลลัพธ์ของ command1 ก็ตาม
ตัวอย่างเช่น:
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แต่คุณจะพลาดผลลัพธ์จากคำสั่งของคุณ