Я пытаюсь запустить команду, используя AWS CLI, а затем установить вывод этой команды в переменную, что было достаточно просто. Я проанализировал начальную команду с помощью jq, и в результате получился массив имен GroupNames, который был именно тем, что я хотел. Теперь я пытаюсь выполнить оператор if, который говорит, что если $ 1 находится в list_groups: распечатать пользователей в этой группе. Моя проблема в два раза. Я не знаю, является ли вывод первой команды доступным для чтения, потому что он не в указанном формате c.
#!/bin/bash
list_groups=$(aws iam list-groups --output json | jq -r .'Groups[] | .GroupName' --output json)
echo $list_groups
if ${1} == $list_groups;
then
echo aws iam get-group --group-name $1 --output json
else
echo 'sorry'
fi
Итак, я пытаюсь взять переменную list_groups, в которой я сохранил выходные данные этой команды CLI, а затем с пользовательским вводом в $ 1 посмотреть, находится ли то, что я ввел, в этом GroupName и использует ли это $ 1, чтобы затем распечатать пользователей внутри этой группы шоу в команде ниже.
echo aws iam get-group --group-name $1 --output json
Извините, я не могу напечатать здесь свой вывод для имен групп, которые я получаю от первой команды, поскольку она чувствительна, но вот пример.
Admin Users assets.dev assets.prod
Как вы можете видеть, здесь нет разделяющих значений, и я не уверен, что это способствует возникновению проблем.
Если бы я хотел выполнить эту команду здесь, я бы набрал
bash accounts_parse.sh Admin
Я получаю ошибку:
command not found
Спасибо всем за помощь, и я уточню, не соответствует ли мое объяснение или требуется дополнительная информация.