是否可以从ruby脚本导出环境属性?

时间:2012-02-19 17:46:56

标签: ruby bash

  

可能重复:
  Exporting an Environment Variable in Ruby

我需要从ruby脚本中设置几个环境属性。

通常,在bash中,我会执行以下操作:

$ export SOME_VAR=some_value

但是在红宝石中,以下(显然)不起作用:

irb(main):002:0> `export SOME_VAR=some_value`
(irb):2: command not found: export ASDF=1
=> ""

有办法吗?

3 个答案:

答案 0 :(得分:10)

根据http://ruby.about.com/od/rubyfeatures/a/envvar.htm,你可以写:

ENV['SOME_VAR'] = 'some_value'

答案 1 :(得分:1)

尝试`ENV ['SOME_VAR'] ='some_value'。

在脚本完成后,您无法在执行脚本的环境中产生此持久效果。

我的回答的评论中讨论的一个技巧是从ruby脚本中将有效的shell代码打印到控制台 - 这是你需要的东西,但它可能是有用的要知道它也可以那样工作。

$ echo "puts 'export foo=bar'" > test.rb
$ echo $foo

$ source <(ruby test.rb)
$ echo $foo
bar

答案 2 :(得分:1)

如果您不想在脚本完成后保留此值,则可以直接更改ENV

ENV['SOME_VAR'] = 'some_value'
puts ENV['SOME_VAR']
# => some_value

如果您确实需要持久性,那么您可能(除此之外)必须将此var写入系统中的~/.bashrc或类似文件。