Вам вообще не нужен JQ там.
Вместо:
aws secretsmanager get-random-password --include-space --password-length 20 \
--require-each-included-type | jq '.RandomPassword' | tr -d '"'
Вам просто нужно:
aws secretsmanager get-random-password --include-space --password-length 20 \
--require-each-included-type --output text
Команды CLI AWS позволяют переключаться между JSON и текстовым (и табличным) выводом, передавая ключ --output
.
Что касается общей читабельности вашего скрипта, я также стараюсь избегать длинных строк, поэтому я бы изменил рефакторинг как что-то вроде:
RANDOM_PASS=$(aws secretsmanager get-random-password \
--require-each-included-type \
--password-length 20 \
--include-space \
--output text)
aws iam create-user --user-name $USERID
aws iam create-login-profile \
--user-name $USERID \
--password $RANDOM_PASS \
--password-reset-required
Это просто личное предпочтение, очевидно.