[英]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.