Як я можу отримати значення змінної bash, якщо у мене є назва змінної як рядок?
var1="this is the real value"
a="var1"
Do something to get value of var1 just using variable a.
Контекст:
У мене є декілька AMI ( Amazon Machine Image ), і я хочу запустити кілька примірників кожного AMI. Як тільки вони закінчують завантаження, я хочу налаштувати кожен екземпляр відповідно до його типу AMI. Я не хочу запускати багато скриптів або секретних ключів всередині будь-якого AMI, тому я підготував узагальнений сценарій запуску і розмістив його на S3 за загальнодоступним посиланням. У rc.local я поміщаю невеликий фрагмент коду, який отримує сценарій запуску та виконує його. Це все, що я маю в AMI. Тоді кожен AMI отримує доступ до загального сценарію конфігурації, який застосовується до всіх AMI та спеціальних сценаріїв налаштування для кожного. Ці сценарії є приватними та потребують підписаної URL-адреси для доступу до них.
Отже, коли я запускаю екземпляр AMI (my_private_ami_1), я передаю підписану URL-адресу для ще одного файлу, представленого на S3, який містить підписану URL-адресу для всіх приватних сценаріїв з точки зору пари ключ / значення.
config_url="http://s3.amazo.../config?signature"
my_private_ami_1="http://s3.amazo.../ami_1?signature"
...
Коли сценарій запуску запускається, він завантажує вищезазначений файл і sourceйого. Потім він перевіряє свій тип AMI і підбирає правильний сценарій налаштування для себе.
ami\_type=GET AMI TYPE #ex: sets ami\_type to my\_private\_ami\_1
setup\_url=GET THE SETUP FILE URL BASED ON AMI\_TYPE # this is where this problem arises
Тож тепер у мене може бути загальний код, який може запускати екземпляри незалежно від їх типів AMI, а екземпляри можуть піклуватися про себе.
Bad substitutionпомилку.