繁体   English   中英

在 aws cli ssm 中的 powershell 命令中传递单引号字符串

[英]Pass single quoted string within powershell command in aws cli ssm

我正在尝试将此 powershell 命令传递给 aws ssm:

$CMD = "docker image inspect $(docker inspect $(docker ps --filter ancestor=.dkr.ecr.us-east-1.amazonaws.com/service:latest -q) --format '{{.Image}}') --format '{{.RepoDigests}}'"
aws ssm send-command --document-name "AWS-RunPowerShellScript" --targets "Key=tag:group,Values=value" --parameters commands="'$CMD'"

但我不断收到此错误:

aws : 
At C:\jenkins\workspace\Test_Patch_Update@tmp\durable-4179e3f3\powershellScript.ps1:4 char:33
+ ...             aws ssm send-command --document-name "AWS-RunPowerShellSc ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
Error parsing parameter '--parameters': Expected: ',', received: '{' for input:
commands='docker image inspect  $(docker inspect $(docker ps --filter ancestor=dkr.ecr.us-east-1.amazonaws.com/service:latest -q) --format '{{.Image}}') 
--format '{{.RepoDigests}}''

我通过将两个单引号放在一起尝试了 escaping 单引号''但它仍然显示错误:

aws : 
At C:\jenkins\workspace\Test_Patch_Update@tmp\durable-521ed40a\powershellScript.ps1:4 char:33
+ ...             aws ssm send-command --document-name "AWS-RunPowerShellSc ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   + CategoryInfo          : NotSpecified: (:String) [], RemoteException
   + FullyQualifiedErrorId : NativeCommandError

Error parsing parameter '--parameters': Expected: ',', received: ''' for input:
commands='docker image inspect  $(docker inspect $(docker ps --filter ancestor=dkr.ecr.us-east-1.amazonaws.com/service:latest -q) --format ''{{.Image}}'') 
--format ''{{.RepoDigests}}'''

PS:我在 jenkins 中运行它

我找到了解决方案!

$CMD = "docker image inspect `$`(docker inspect `$`(docker ps --filter ancestor=dkr.ecr.us-east-1.amazonaws.com/service:latest -q`) --format \\'{{.Image}}\\'`) --format \\'{{.RepoDigests}}\\'"
                        aws ssm send-command --document-name "AWS-RunPowerShellScript" --targets "Key=tag:Patch Group,Values=stage-ecs-windows" --parameters commands="'$CMD'" | ConvertFrom-Json

escaping 带有两个反斜杠\\的单引号和带有(`)的美元和括号给出了 output。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM