Jenkins Groovy字符串插值未正确传递

Jenkins Groovy字符串插值未正确传递,jenkins,jenkins-groovy,Jenkins,Jenkins Groovy,我正在尝试使用sh在Jenkins中运行命令。以下是我的工作: ecsOracleClusterName = "foo" ecsServiceName = sh(returnStdout: true, script: 'aws ecs list-services --cluster "${ecsOracleClusterName}" --region us-east-1').trim() 我注意到,ecsOracleClusterName显示为空。不确定为什么会发生这种情况,但在Jenkins

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

ecsOracleClusterName = "foo"
ecsServiceName = sh(returnStdout: true, script: 'aws ecs list-services --cluster "${ecsOracleClusterName}" --region us-east-1').trim()
我注意到,
ecsOracleClusterName
显示为空。不确定为什么会发生这种情况,但在Jenkins,我收到了以下错误消息:

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

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

如您所见,cluster name变量没有传递该值。这让我相信字符串插值存在问题(或者至少我是如何实现它的)。有人能告诉我这里发生了什么吗?

试着用这样的双引号

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

试着像这样使用双引号

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

如果我这样做,我是否需要在变量中添加开始括号和结束括号?不,完全按照写的方式尝试。如果我这样做,我是否需要在变量中添加开始括号和结束括号?不,完全按照写的方式尝试