如何在jenkinfile变量中包含引号字符

时间:2018-09-21 16:29:19

标签: jenkins-pipeline

如何在jenkinfile中包括单引号和双引号字符以及变量。我只需要从我的jenkinfile中打印CURLDATA变量。

我的Jenkinsfile看起来像这样-

{
    def CURLDATA = "\'{\"to\":\"${MEETINGROOM}\", \"type\":\"meeting\", \"from\":\"absEMbot@myapplication.att.com\", \"password\":\"${ROOMPASS}\", \"displayfromname\":\"ABS EM Bot\", \"html\":\"BUILD FAILURE:${ENVIRONMENT}\"}\'"

sh "echo CurlData is : ${CURLDATA}"  

}

以下是我在jenkin控制台中遇到的错误-

org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败: WorkflowScript:60:期望在第60行第13列进行操作。                def CURLDATA =“ \'{\”到\“:\” $ {MEETINGROOM} \“,\”类型\“:\”会议\“,\”来自\“:\” absEMbot@myapplication.att.com \ “,\”密码\“:\” $ {ROOMPASS} \“,\” displayfromname \“:\” ABS EM Bot \“,\” html \“:\”内置失败:$ {ENVIRONMENT} \“} \ '”                ^

1个错误

有人可以告诉我如何解决它。也尝试了很多其他方式。


这个可以在Jenkins脚本控制台中使用

{
    def MEETINGROOM = "Test"
    def CURLDATA = "\'{\"to\":\"${MEETINGROOM}\"}\'"
    println  "${CURLDATA}"
  }

结果 '{“至”:“测试”}'

但是从jenkinfile中无法执行相同的操作。

2 个答案:

答案 0 :(得分:0)

您可以在此处使用多行字符串“”“,这样就不必转义'或”

{
  def MEETINGROOM = "Test"
  def CURLDATA = """'{"to":"${MEETINGROOM}"}'"""
  println  "${CURLDATA}"
}

答案 1 :(得分:0)

您可以使用/slashy string/

def CURLDATA = /'{"to":"Test"}'/

此外,您还需要在script步骤中包装作业:

script {
    def CURLDATA = /'{"to":"Test"}'/
    echo "${CURLDATA}"
}