JenkinsFile(管道脚本)错误:语法错误:未终止的引号字符串

JenkinsFile(管道脚本)错误:语法错误:未终止的引号字符串,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,----下面是我的Jenkins文件(管道脚本)----- 这里,“PWD”参数有问题,它将被2'iblm98>#sample password(有单引号)替换 但当我进行jenkins构建时,由于密码中存在单引号,所以出现以下错误。 如何在jenkinsfile(管道脚本)中转义这个单引号并获得构建成功 script.sh:语法错误:未终止的引号字符串 提前谢谢你 您可以通过以下方式转义PWD中的所有单引号: 在上面的代码中${PWD.replaceAll(/'/,/\\'/)}用\'转义所有

----下面是我的Jenkins文件(管道脚本)-----

这里,“PWD”参数有问题,它将被2'iblm98>#sample password(有单引号)替换 但当我进行jenkins构建时,由于密码中存在单引号,所以出现以下错误。 如何在jenkinsfile(管道脚本)中转义这个单引号并获得构建成功

script.sh:语法错误:未终止的引号字符串


提前谢谢你

您可以通过以下方式转义PWD中的所有单引号:

在上面的代码中${PWD.replaceAll(/'/,/\\'/)}用
\'转义所有
'
发生的事件


请注意,
/'/
/\\'
都是s。

如果您的密码没有空,您可以删除
'${PWD}'下的单引号。
ViniczaiThank your for response。我不知道下面是如何为我工作的。我的PWD值仍然是单引号,但当我使用带反斜杠的dobule引号时,它起作用了-Prdspass=\“${PWD}\”之所以有效,是因为
PWD
当前不包含任何双引号。例如,
PWD='foo“bar'
也会遇到同样的问题。
withCredentials([usernamePassword(credentialsId: 'test', usernameVariable: 'US
ER', passwordVariable: 'PWD')])
       {
sh "${gradle} -Prdsuser=${USER} -Prdspass='${PWD}'"
}
withCredentials([usernamePassword(credentialsId: 'test', usernameVariable: 'USER', passwordVariable: 'PWD')]) {
    sh "${gradle} -Prdsuser=${USER} -Prdspass='${PWD.replaceAll(/'/, /\\'/)}'"
}