首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转义Jenkins管道文件的shell命令中的双引号

转义Jenkins管道文件的shell命令中的双引号
EN

Stack Overflow用户
提问于 2019-06-13 22:59:21
回答 3查看 30.1K关注 0票数 12

下面是我的Jenkins文件中的一个片段-

代码语言:javascript
复制
stage('Configure replication agents') {
            environment {
                AUTHOR_NAME="XX.XX.XX.XX" 
                PUBLISHER_NAME="XX.XX.XX.XX"
                REPL_USER="USER"
                REPL_PASSWORD="PASSWORD"
                AUTHOR_PORT="4502"
                PUBLISHER_PORT="4503"
                AUTHOR="http://${AUTHOR_NAME}:${AUTHOR_PORT}"
                PUBLISHER="http://${PUBLISHER_NAME}:${PUBLISHER_PORT}"
                S_URI= "${PUBLISHER}/bin/receive?sling:authRequestLogin=1"
            }
            steps {
                sh 'curl -u XX:XX --data "status=browser&cmd=createPage&label=${PUBLISHER_NAME}&title=${PUBLISHER_NAME}&parentPath =/etc/replication/agents.author&template=/libs/cq/replication/templates/agent" ${AUTHOR}/bin/wcmcommand'
            }

在Jenkins控制台中,上面的命令打印为

代码语言:javascript
复制
curl -u XX:XX --data status=browser&cmd=createPage&label=XXXX&title=XXX&parentPath =/etc/replication/agents.author&template=/libs/cq/replication/templates/agent http://5XXXX:4502/bin/wcmcommand

请注意双引号""是如何丢失的。

在此命令中,我需要保留--data后面的双引号。我该怎么做呢?我试着使用正斜杠,但不起作用。

干杯

EN

回答 3

Stack Overflow用户

发布于 2019-06-14 18:17:04

为了扩展我的评论,一个快速测试揭示了它的情况。

您需要转义两次,一次是用斜杠引用shell,另一次是用斜杠引用groovy本身。

代码语言:javascript
复制
node() {
    sh 'echo "asdf"'
    sh 'echo \"asdf\"'
    sh 'echo \\"asdf\\"'
}

结果

代码语言:javascript
复制
[Pipeline] {
[Pipeline] sh
+ echo asdf
asdf
[Pipeline] sh
+ echo asdf
asdf
[Pipeline] sh
+ echo "asdf"
"asdf"
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
票数 26
EN

Stack Overflow用户

发布于 2020-05-03 04:06:11

经过长时间的努力和谷歌搜索,这就是我在类似的用例中的工作:

代码语言:javascript
复制
sh("ssh root@my.server.com \"su user -c \\\"mkdir ${newDirName}\\\"\"")
票数 4
EN

Stack Overflow用户

发布于 2021-05-06 04:17:16

我在变量中有双引号,所以转义单引号对我很有效:

代码语言:javascript
复制
sh "git commit -m \'${ThatMayContainDoubleQuotes}\'"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56583357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档