代码之家  ›  专栏  ›  技术社区  ›  overexchange

如何使用嵌套的AWS CLI命令语法?

  •  0
  • overexchange  · 技术社区  · 5 年前

    下面是在bash上运行的两个不同的AWS CLI命令:

    IMAGES_TO_DELETE=$( aws ecr list-images --region $ECR_REGION --repository-name $ECR_REPO --filter "tagStatus=UNTAGGED" --query 'imageIds[*]' --output json )
    
    aws ecr batch-delete-image --region $ECR_REGION --repository-name $ECR_REPO --image-ids "$IMAGES_TO_DELETE" || true
    

    其中第一个命令存储JSON格式 [ {"imageDigest": "sha256:..."}, {"imageDigest": "sha256:..."}, ... ] IMAGES_TO_DELETE


    在一个场景中,我可以运行单个嵌套命令:

    aws ecr batch-delete-image --region us-west-2 --repository-name "somedockerimage" --image-ids “$(aws ecr list-images --region us-west-2 --repository-name "somedockerimage" --filter "tagStatus=UNTAGGED" --query 'imageIds[*]' --output text)” || true
    

    Error parsing parameter '--image-ids': Expected: '=', received: '“' for input:
    “sha256:cccccccccc983f4185f48fb968634dae8c4276ee1a7ffffffffffffff
    ^
    

    aws ecr batch-delete-image --region us-west-2 --repository-name "somedockerimage" --image-ids “$(aws ecr list-images --region us-west-2 --repository-name "somedockerimage" --filter "tagStatus=UNTAGGED" --query 'imageIds[*]' --output json)” || true
    

    给出错误:

    Error parsing parameter '--image-ids': Expected: '=', received: '“' for input:
    “[
    ^
    

    要替换的嵌套语法是什么 "$IMAGES_TO_DELETE" 在第二指挥部?

    1 回复  |  直到 5 年前
        1
  •  1
  •   John Kugelman    5 年前

    更改智能引号 “...” 直引号 "..."