
def NAMESPACE = "Dev"
def BODY= sh(
script:'''body=$(cat <<-EOF
{
"name": "${NAMESPACE}",
"type": "regularwebapp"
}
EOF
)
(echo $body)''',
returnStdout: true
).trim()
Lo anterior no funciona, el resultado es el siguiente:
{
"name": "",
"type": "regularwebapp"
}
Respuesta1
Groovy no realiza sustitución de variables dentro de cadenas entre comillas simples ( '
). Utilice cadenas entre comillas dobles ( "
) en su lugar; esto también requerirá escapar de variables que no sean Groovy:
def NAMESPACE = "Dev"
def BODY= sh(
script:"""body=\$(cat <<-EOF
{
"name": "${NAMESPACE}",
"type": "regularwebapp"
}
EOF
)
(echo \$body)""",
returnStdout: true
).trim()