Supongamos que tengo un script Groovy en Jenkins que contiene un script de shell de varias líneas. ¿Cómo puedo configurar y usar una variable dentro de ese script? La forma normal produce un error:

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

Atrapado: groovy.lang.MissingPropertyException: No existe tal propiedad: foo para la clase: groovy.lang.Binding

58
Fo. 27 ene. 2016 a las 23:34

2 respuestas

La mejor respuesta

Debes cambiar a comillas simples triples ''' o escapar del dólar \$

Entonces te saltearás las plantillas geniales, que es lo que te da este problema.

90
tim_yates 27 ene. 2016 a las 20:38

Solo estoy poniendo una '\' al final de la línea Solo estoy poniendo un '\' al final de la línea

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

Esta declaración funciona en mi guión.

15
bpedroso 21 nov. 2017 a las 01:19