
def NAMESPACE = "Dev"
def BODY= sh(
script:'''body=$(cat <<-EOF
{
"name": "${NAMESPACE}",
"type": "regularwebapp"
}
EOF
)
(echo $body)''',
returnStdout: true
).trim()
O procedimento acima não funciona, a saída é a seguinte:
{
"name": "",
"type": "regularwebapp"
}
Responder1
Groovy não realiza substituição de variáveis dentro de strings entre aspas simples ( '
). Em vez disso , use strings entre aspas duplas ( "
) - isso também exigirá o escape de variáveis não-Groovy:
def NAMESPACE = "Dev"
def BODY= sh(
script:"""body=\$(cat <<-EOF
{
"name": "${NAMESPACE}",
"type": "regularwebapp"
}
EOF
)
(echo \$body)""",
returnStdout: true
).trim()