Groovy 正确转义双引号

Groovy 正确转义双引号,groovy,escaping,Groovy,Escaping,我在管道中执行了以下两个命令 def IMAGE = "url/microservices/currency-converter-search:${env.BUILD_NUMBER}" sh "cat task-blueprint.json | jq .containerDefinitions[0].image=${IMAGE} > currency-converter-search-task-${env.BUILD_NUMBER}.json" 问题是我返回了一个错误,因为我需要保存的字

我在管道中执行了以下两个命令

def IMAGE = "url/microservices/currency-converter-search:${env.BUILD_NUMBER}"
sh "cat task-blueprint.json | jq .containerDefinitions[0].image=${IMAGE} > currency-converter-search-task-${env.BUILD_NUMBER}.json"
问题是我返回了一个错误,因为我需要保存的字符串需要被
双引号包围,以便通过
jq

这是我得到的错误:

[workspace] Running shell script
+ jq .containerDefinitions[0].image=264721266761.dkr.ecr.us-east-1.amazonaws.com/currency-converter/search:1
error: syntax error, unexpected IDENT, expecting $end
.containerDefinitions[0].image=264721266761.dkr.ecr.us-east-1.amazonaws.com/currency-converter/search:1
                                            ^^^
1 compile error
+ cat task-blueprint.json
cat: write error: Broken pipe
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

ERROR: script returned exit code 1
Finished: FAILURE
在这里你可以找到我的档案


刚刚跳过了引号

...image=\"${IMAGE}\"

什么是“我需要保存的字符串”?是IMAGE变量,但它需要用双引号括起来,以便JQQ解析。您能告诉我们发生了什么,包括确切的错误消息吗?如果您能够为“$IMAGE”添加print语句,并且如果您将“sh”放在“将命令行转换成一个变量并打印出来。当然,我要发布@DavidM。Karr@DavidM.Karr更新进一步的信息你的问题必须在别处,然后再次,“不工作”也没有告诉我们任何事情。如果它不起作用,请确切地告诉我们出了什么问题,以及它与您的期望有什么不同。@tim_yates,正如您所看到的,问题在于我正确地转义了双引号,但结果是没有双引号,而是应该有双引号