如何在ruby脚本中将ruby变量设置为shell环境变量

bre*_*guy 0 ruby amazon-web-services secret-key fog aws-sdk

我想用雾写一个ruby脚本(aws-sdk的包装器).当然,我可以硬编码我的aws密钥和ID,但是我希望能够将它动态设置为我的shell env变量,因为我管理多个帐户.

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

aws_key_id = $aws_key_id
aws_secret_key = $aws_secret_key
queue_url = $sqs_queue_url
Run Code Online (Sandbox Code Playgroud)

这会有用吗?

小智 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']
Run Code Online (Sandbox Code Playgroud)

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