我需要分几个步骤处理一些数据。
我首先在AWS中创建一个托管策略列表,并将该列表放入一个数组中:
readarray -t managed_policies < <(aws iam list-attached-user-policies --user-name tdunphy --output json --profile=company-nonprod | jq -r '.AttachedPolicies[].PolicyArn')但是,我需要在后面的脚本中向该数组添加更多信息。我的问题是,我可以使用readarray来完成这个任务吗?还是只需要使用命令将数据修正到列表中,例如:
managed_policies+=($(aws iam list-attached-group-policies --group-name grp-cloudops --profile=compnay-nonprod | jq -r '.AttachedPolicies[].PolicyArn'))发布于 2018-10-31 20:42:15
我建议使用选项-O添加到数组中:
mapfile -t -O "${#managed_policies[@]}" managed_policies < <(aws ...)发布于 2018-10-31 20:45:41
您也可以这样做:
readarray -t managed_policies < <(aws ...)
readarray -t tmp < <(aws ...)
managed_policies+=("${tmp[@]}")发布于 2018-10-31 20:51:56
假设您可以立即调用aws (您给出的示例表明可以这样做,因为这两组参数都是硬编码的),您只需要对readarray进行一次调用。(该函数只是一些不必要的重构。)
get_policies () {
aws iam list-attached-user-policies --output json --profile company-nonprod "$@"
}
readarray -t managed_policies < <(
{ get_policies --user-name tdunphy
get_policies --group-name grp-cloudops
} | jq -r '.AttachedPolicies[].PolicyArn')(非主题,但也可以省略对jq的调用,方法是对aws使用适当的参数来适当地调整输出。)
https://stackoverflow.com/questions/53091505
复制相似问题