wake-up-neo.com

Wie setze ich Variablen in einem mehrzeiligen Shell-Skript in Jenkins Groovy?

Angenommen, ich habe ein Groovy-Skript in Jenkins, das ein mehrzeiliges Shell-Skript enthält. Wie kann ich eine Variable in diesem Skript festlegen und verwenden? Der normale Weg erzeugt einen Fehler:

sh """
    foo='bar'
    echo $foo
"""

Gefangen: groovy.lang.MissingPropertyException: Keine solche Eigenschaft: foo für die Klasse: groovy.lang.Binding

45
Fo.

Sie müssen zu dreifachen einfachen Anführungszeichen wechseln ''' oder entkomme dem Dollar \$

Dann überspringen Sie die groovige Vorlage, die Ihnen dieses Problem bereitet

81
tim_yates

Ich setze nur ein '\' am Ende der Zeile

sh script: """\
  foo='bar' \
  echo $foo \
""", returnStdout: true

Diese Anweisung funktioniert in meinem Skript.

10
bpedroso