【发布时间】:2010-12-27 15:15:31
【问题描述】:
如果我将变量名作为字符串,如何检索 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 的通用配置脚本和每个 AMI 的特殊设置脚本。这些脚本是私有的,需要一个签名的 URL 才能访问它们。
所以现在,当我启动一个 AMI 实例 (my_private_ami_1) 时,我为 S3 上显示的另一个文件传递了一个签名 URL,该文件包含所有私有脚本的键/值对的签名 URL。
config_url="http://s3.amazo.../config?signature"
my_private_ami_1="http://s3.amazo.../ami_1?signature"
...
当启动脚本运行时,它会下载上面的文件和source's it。然后它会检查其 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 类型如何,并且实例可以自行处理。
【问题讨论】: