我的bash脚本中有一行,可以拉出AWS访问密钥及其为用户创建的日期。
aws iam list-access-keys --user-name $user_name --profile=prod | jq -r '.AccessKeyMetadata[] | (.AccessKeyId, .CreateDate)')
它输出如下信息:
AKIAI6Q5EQ53GONANGBA
2018-07-05T21:28:39Z
AKIAICDOHVTMEAB6RM5Q
2018-02-08T03:55:51Z
我尝试创建一个数组并为该数组循环:
echo "User $user_name keys:"
user_keys=( $(aws iam list-access-keys --user-name $user_name --profile=kpmg-prod | jq -r '.AccessKeyMetadata[] | (.AccessKeyId, .CreateDate)' '\n') )
for i in "$user_keys"
do
echo "$user_keys"
done
但是让我高兴的是这个输出:
User my_aws_user keys:
AKIAI6Q5EQ53GONANGBA
我想将该命令的输出分配给数组。并在一行上打印出密钥和时间戳。并使用时间戳记来确定用户密钥是否早于90天。
如果它已超过90天,它将执行我已经解决的一些附加功能。我该如何实现?
答案 0 :(得分:1)
如果user_keys
是一个数组,则$user_keys
和${user_keys[0]}
是等效的。你想要
for i in "${user_keys[@]}"
do
echo "$i"
done
相反。 (将数组扩展到其全部内容,每个单词一个元素,并在主体循环中使用索引。)