У меня возникли проблемы с выполнением команды как части сценария в EC2 AWS-AMI Linux.
Как часть команды, я должен передать несколько переменных в CLI, включая кавычки, такие как --subnet-ids "subnet-c123456" "subnet-b123456" "subnet-a123456"
, поэтому я создал блок кода как
#!/bin/sh
set -x
......
MySubnetA="subnet-a123456"
MySubnetB="subnet-b123456"
MySubnetC="subnet-c123456"
$(aws --profile myProfile --region myRegion rds create-db-subnet-group --db-subnet-group-name ${!1} --db-subnet-group-description ${!1} --subnet-ids \"${MySubnetA}\" \"${MySubnetB}\" \"${MySubnetC}\" --tags Key=Name,Value=${!1})
Когда я запускаю скрипт, вывод показывает команду с одинарными кавычками вокруг экранированных двойных кавычек, это приводит к сбою интерфейса командной строки.
++ aws --profile myProfile --region us-west-1 rds create-db-subnet-group --db-subnet-group-name myDBgroup --db-subnet-group-description myDBgroup --subnet-ids '"subnet-a123456"' '"subnet-b123456"' '"subnet-c123456"' --tags Key=Name,Value=myDBgroup
Как передать команду, чтобы двойные кавычки не заключались в одинарные.
ОБНОВЛЕНИЕ
В соответствии с комментарием ниже, если я повторяю командную строку, а затем копирую / вставляю запуск в терминале, команда выполняется, как ожидалось. Но при запуске внутри скрипта он терпит неудачу. Может ли сценарий bash добавлять дополнительные символы к команде, вызывая ее сбой?
спасибо Арт