我正在尝试从我的 ruby 程序中运行一些第三方 bash 脚本。
在我运行它们之前,它们要求我获取一个文件。在命令行上它一切正常,但在 Ruby 中它不起作用。我发现系统命令将打开一个新的子 shell 进程,任何采购都将在其中完成,并且无法从运行 Ruby 脚本的父 shell 进程中看到。当系统调用结束时,子 shell 也被杀死。
我该如何解决这个问题?
最佳答案
这样做:
$ source whatever.sh
$ set > variables.txt
然后在 Ruby 中:
File.readlines("variables.txt").each do |line|
values = line.split("=")
ENV[values[0]] = values[1]
end
运行此程序后,您的环境应该可以正常运行了。
关于ruby - 如何在 Ruby 脚本中为命令 shell 获取环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2139080/