Q:

How to set variables in a multi-line shell script within Jenkins Groovy? 

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

A:

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

A:

I'm just putting a '\' on the end of line
sh script: """\
  foo='bar' \
  echo $foo \
""", returnStdout: true

This statement works on my script.