разбирать ошибки чтения переменных из массива bash - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь удалить пользовательские ключи AWS, используя массив bash.

Я храню ключи доступа AWS в массиве и считываю их в одном цикле, а затем пытаюсь удалить их в другом цикле..

Цикл, который читает переменные, выводится правильно:

Listing access keys for "script-test".
AKIAJKWXK6ZI6BPV6KOA
AKIAIHM2MZMQC7KLXSJA

Но цикл, который должен удалять ключи, портит выходные данные массива:

Deleting user access keys for script-test.
Deleting key: AKIAJKWXK6ZI6BPV6KOA
AKIAIHM2MZMQC7KLXSJA

Это ошибка, которая возникает:

Произошла ошибка (ValidationError) при вызове операции DeleteAccessKey: указанное значение для accessKeyId недопустимо.Он должен содержать только буквенно-цифровые символы.

Это два цикла, которые я использую для печати, а затем удаляю ключи:

echo "Listing access keys for \"$user_name\"."
declare -a keys
keys=$( (aws iam list-access-keys --user-name "$user_name" --profile="$aws_env"  | jq -r '.AccessKeyMetadata[].AccessKeyId') )
for key in "${keys[@]}"
do
  echo "$key"
done

echo; echo
echo "Deleting user access keys for $user_name."
for key in "${keys[@]}"
do
 echo "Deleting key: $key"
  aws iam delete-access-key --user-name "$user_name" --access-key-id "$key" --profile="$aws_env"
done

Что я делаю неправильно?Как я могу заставить это работать правильно?

...