我需要在为其设置环境变量时为一个进程进行shell.我试过这个单行:
system "RBENV_VERSION=system ruby extconf.rb"
Run Code Online (Sandbox Code Playgroud)
此语法适用于shell脚本,但不适用于ruby.(更新:事实证明这个语法毕竟是来自ruby,但由于我的特殊用例,我没有看到它的效果.)
所以我这样做:
rbenv_version = ENV['RBENV_VERSION']
ENV['RBENV_VERSION'] = 'system'
begin
system "ruby extconf.rb"
ensure
ENV['RBENV_VERSION'] = rbenv_version
end
Run Code Online (Sandbox Code Playgroud)
我被迫这么长的表达式,因为我不想永久覆盖环境变量,如果它已经有一个值.
想到什么更短的东西?