2015-05-26 63 views
0

我想用fog(aws-sdk的包装器)编写ruby脚本。当然,我可以硬编码我的aws秘密密钥和ID,但希望能够将它动态设置为我的shell env变量,因为我管理多个帐户。如何在ruby脚本中将ruby变量设置为shell环境变量

require 'fog' 
require 'json' 
require 'logger' 

aws_key_id = $aws_key_id 
aws_secret_key = $aws_secret_key 
queue_url = $sqs_queue_url 

这项工作?

+0

抱歉,我没有得到..你要从ENV变量来读取或从Ruby脚本写它? – zekus

+0

是的,我想让我的bash环境变量在cli上变化......然后当我运行脚本时,ruby变量会相应地改变。所以从env变量中读取。 – brenguy

回答

6

在ruby中,您使用ENV来访问这些值。

require 'fog' 
require 'json' 
require 'logger' 

aws_key_id = ENV['aws_key_id'] 
aws_secret_key = ENV['aws_secret_key'] 
queue_url = ENV['sqs_queue_url'] 

如果你想提供默认值,你可以用ENV.fetch('key', [default])ENV.fetch('sqs_queue_url', 'http://localhost')

+0

啊!谢谢凯文! – brenguy