ฉันจะดึงค่าตัวแปร bash ได้อย่างไรถ้าฉันมีชื่อตัวแปรเป็นสตริง?
var1="this is the real value"
a="var1"
Do something to get value of var1 just using variable a.
บริบท:
ฉันมี AMI ( ภาพเครื่องของ Amazon ) บางส่วนและฉันต้องการเริ่มต้นบางกรณีของ AMI แต่ละอัน ทันทีที่บูตเสร็จฉันต้องการตั้งค่าแต่ละอินสแตนซ์ตามประเภท AMI ฉันไม่ต้องการอบสคริปต์หรือคีย์ลับจำนวนมากใน AMI ใด ๆ ดังนั้นฉันจึงเตรียมสคริปต์เริ่มต้นทั่วไปและฉันวางไว้บนS3ด้วยลิงก์ที่สาธารณชนสามารถเข้าถึงได้ ใน rc.local ฉันใส่โค้ดชิ้นเล็ก ๆ ซึ่งดึงข้อมูลสคริปต์เริ่มต้นและเรียกใช้งาน นี่คือทั้งหมดที่ฉันมีใน AMIs จากนั้น 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
ข้อผิดพลาด