I can't get the return code (not the output or error) from executing a shell script within Groovy.
For all what I tried, it either ask me to escape or just print the $? instead of give me 1 or 0.
groovy: 75: illegal string body character after dollar sign; solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 75, column 24.
Below are solutions I tried, all don't work.
println "../src/check_job_log.s ${it}.log".execute().text
println "Check log ${it}.log completed"
//assert ("echo \$?".execute().text == "1")
//output = """echo $?""".execute().text
println(['echo', '$?'].execute().text)
// below is code for @that other guy
//def process = "echo hello world".execute()
def process = "../src/check_job_log.s ${it}.log".execute()
print "Output: " + process.text
print "Exit code: " + process.exitValue()
Output: Exit code: 01
Use Process.exitValue()
instead of (or in addition to) .text
:
def process = "echo hello world".execute()
print "Output: " + process.text
print "Exit code: " + process.exitValue()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With