繁体   English   中英

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

[英]Ruby: Setting environment variables using system()

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

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

但是由于某种原因,当我在运行此命令后进入控制台时,尚未添加环境变量! 我能够运行其他命令行界面关键字,并且可以正常工作。 如何从Ruby设置环境变量?

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

关于此的一个很好的资源是Jesse Storimer的博客文章,有关环境和过程的信息比我在此处输入的要多得多。

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

因此答案是,您正在设置和导出环境变量。 他们根本无法幸免于子进程的生命。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM