【问题标题】:How to I loop through AWS CLI output?如何循环浏览 AWS CLI 输出?
【发布时间】:2020-06-27 09:43:30
【问题描述】:

我正在尝试将 aws cli 查询中的值列表传递给另一个命令。 尽管我在 AWS 中看到了很多示例,但当我尝试将所有值结合在一起时:

  policy_versions=`aws iam list-policy-versions --query "Versions[].VersionId" --policy-arn $POLICY_ARN --output text`
  echo "policy_versions=$policy_versions"
  for ver in $policy_versions; do
    echo "first version: $ver"
  done

然后打印出来:

policy_versions=v3  v2  v1
first version: v3   v2  v1

我的ver 的值是整个字符串,应该是v3 然后是v2v1。但它是: v3 v2 v1.

我不知道出了什么问题。

【问题讨论】:

    标签: amazon-web-services aws-cli


    【解决方案1】:

    我能够重现您的结果,并将结果追溯到 shell 和 zsh(现在用作 MacOS 中的默认 shell)之间的差异。

    简单地说,你可以运行这个命令来让它按照你期望的方式工作:setopt shwordsplit

    更多详情请见:iteration - Shell script - iterate over space separated words/characters (in zsh) - Stack Overflow

    【讨论】:

    • !!!!!!!!!!!!!!!!!!!!!!!!!!!谢谢!!!!!!!!!!!!!!!!!! !!!!!!!!!
    • 严重的是这件事让我失去了几个小时哈哈以为我快疯了非常感谢。
    猜你喜欢
    • 2016-05-15
    • 2011-09-20
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多