web-dev-qa-db-ja.com

Jenkins Groovy内の複数行のシェルスクリプトで変数を設定する方法

Jenkinsに複数行のシェルスクリプトを含むGroovyスクリプトがあるとします。そのスクリプト内で変数を設定して使用するにはどうすればよいですか?通常の方法ではエラーが発生します。

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

キャッチ:groovy.lang.MissingPropertyException:そのようなプロパティはありません:クラスのfoo:groovy.lang.Binding

45
Fo.

三重の単一引用符'''に変更するか、ドル\$をエスケープする必要があります

次に、この問題を引き起こしているグルーヴィーなテンプレートをスキップします

81
tim_yates

私はちょうど行末に「\」を入れています

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

このステートメントは私のスクリプトで機能します。

10
bpedroso