Comment puis-je récupérer une valeur de variable bash si j'ai le nom de variable sous forme de chaîne?
var1="this is the real value"
a="var1"
Do something to get value of var1 just using variable a.
Le contexte:
J'ai des AMI ( Amazon Machine Image ) et je souhaite lancer quelques instances de chaque AMI. Dès qu'ils ont fini de démarrer, je souhaite configurer chaque instance en fonction de son type d'AMI. Je ne veux pas créer beaucoup de scripts ou de clés secrètes dans une AMI, j'ai donc préparé un script de démarrage généralisé et je l'ai mis sur S3 avec un lien accessible au public. Dans rc.local, j'ai mis un petit morceau de code qui récupère le script de démarrage et l'exécute. C'est tout ce que j'ai dans les AMI. Ensuite, chaque AMI accède à un script de configuration commun qui s'applique à toutes les AMI et à des scripts de configuration spéciaux pour chacune. Ces scripts sont privés et nécessitent une URL signée pour y accéder.
Alors maintenant, lorsque je déclenche une instance d'une AMI (my_private_ami_1), je passe une URL signée pour un autre fichier présenté sur S3 qui contient une URL signée pour tous les scripts privés en termes de paire clé / valeur.
config_url="http://s3.amazo.../config?signature"
my_private_ami_1="http://s3.amazo.../ami_1?signature"
...
Lorsque le script de démarrage s'exécute, il télécharge le fichier ci-dessus et source
c'est tout. Ensuite, il vérifie son type d'AMI et choisit le script d'installation correct pour lui-même.
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
Alors maintenant, je peux avoir un code générique qui peut déclencher des instances indépendamment de leurs types d'AMI et les instances peuvent prendre soin d'elles-mêmes.
Bad substitution
erreur.