How to set variables in a multi-line shell script within Jenkins Groovy?
71,969
Solution 1
You need to change to triple single quotes '''
or escape the dollar \$
Then you'll skip the groovy templating which is what's giving you this issue
Solution 2
I'm just putting a '\' on the end of line
sh script: """\
foo='bar' \
echo $foo \
""", returnStdout: true
This statement works on my script.
Author by
Fo.
Updated on July 08, 2022Comments
-
Fo. almost 2 years
Suppose I have a Groovy script in Jenkins that contains a multi-line shell script. How can I set and use a variable within that script? The normal way produces an error:
sh """ foo='bar' echo $foo """
Caught: groovy.lang.MissingPropertyException: No such property: foo for class: groovy.lang.Binding