Wie kann ich einen Bash-Variablenwert abrufen, wenn ich den Variablennamen als Zeichenfolge habe?
var1="this is the real value"
a="var1"
Do something to get value of var1 just using variable a.
Kontext:
Ich habe einige AMIs ( Amazon Machine Image ) und möchte einige Instanzen jedes AMI starten. Sobald der Startvorgang abgeschlossen ist, möchte ich jede Instanz entsprechend ihrem AMI-Typ einrichten. Ich möchte nicht viele Skripte oder geheime Schlüssel in einem AMI backen, deshalb habe ich ein verallgemeinertes Startskript vorbereitet und es mit einem öffentlich zugänglichen Link auf S3 gestellt . In rc.local habe ich einen kleinen Code eingefügt, der das Startskript abruft und ausführt. Das ist alles, was ich in den AMIs habe. Anschließend greift jedes AMI auf ein gemeinsames Konfigurationsskript zu, das auf alle AMIs und spezielle Setup-Skripte für jedes AMI anwendbar ist. Diese Skripte sind privat und erfordern eine signierte URL, um darauf zugreifen zu können.
Wenn ich jetzt eine Instanz eines AMI (my_private_ami_1) auslöse, übergebe ich eine signierte URL für eine weitere in S3 präsentierte Datei, die eine signierte URL für alle privaten Skripte in Bezug auf das Schlüssel / Wert-Paar enthält.
config_url="http://s3.amazo.../config?signature"
my_private_ami_1="http://s3.amazo.../ami_1?signature"
...
Wenn das Startskript ausgeführt wird, lädt es die obige Datei herunter und ist source
es. Dann sucht es nach seinem AMI-Typ und wählt das richtige Setup-Skript für sich aus.
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
Jetzt kann ich einen generischen Code haben, der Instanzen unabhängig von ihren AMI-Typen auslösen kann, und Instanzen können für sich selbst sorgen.
Bad substitution
Fehler.