Groovy字符串插值未正确传递

时间:2019-05-17 18:16:14

标签: jenkins jenkins-groovy

我正在尝试使用sh在Jenkins中运行命令。这是我的工作:

ecsOracleClusterName = "foo"
ecsServiceName = sh(returnStdout: true, script: 'aws ecs list-services --cluster "${ecsOracleClusterName}" --region us-east-1').trim()

我注意到ecsOracleClusterName变成空白。不知道为什么会这样,但是在詹金斯,我收到此错误消息:

+ aws ecs list-services --cluster  --region us-east-1

An error occurred (ClusterNotFoundException) when calling the ListServices operation: Cluster not found.

如您所见,集群名称变量未传递值。这使我相信字符串插值有问题(或者至少我是如何实现的)。有人可以告诉我这里发生了什么吗?

1 个答案:

答案 0 :(得分:2)

尝试使用双引号..

ecsOracleClusterName = "foo"
ecsServiceName = sh(returnStdout: true, script: "aws ecs list-services --cluster $ecsOracleClusterName --region us-east-1").trim()
println "Service name: ${ecsServiceName}"