Ruby:使用system()设置环境变量

时间:2014-12-19 07:55:03

标签: ruby

我正在创建以下设置环境变量的方法:

  def set_time
    puts "setting_time"
    system("export GIT_COMMITTER_DATE='#{@date}'")
    system("export GIT_AUTHOR_DATE='#{@date}'")
  end

但由于某些原因,当我在运行此操作后进入我的控制台时,尚未添加环境变量!我能够运行其他命令行界面关键字,它的工作原理。如何从Ruby设置环境变量?

1 个答案:

答案 0 :(得分:1)

他们没有“坚持”的原因。是因为当你从Ruby运行shell命令时,它会打开一个新进程。而作为当前Ruby进程的子进程的那个进程并不是持久的,因为它最终会死掉。

这方面的一个很好的资源是Jesse Storimer的博客文章,其中提供了有关环境和流程的更多信息,而不是我在此处输入的内容。

根据您的操作系统,您可以使用Ruby写入您的“rc'文件,例如~/.bashrc或在Windows上更改您的注册表,如果您确实希望这些文件在登录时保持不变。

答案是,您正在设置和导出环境变量。他们根本没有超过孩子过程的生命。