如何将环境变量传递给我使用Kernel#system
et al 执行的 shell 命令?
说,我想跑
%x{git checkout -f}
但是这个命令依赖于环境变量$GIT_WORK_TREE
。我该如何设置?
您应该能够在ENV
调用子 shell 之前在 Ruby 的哈希中设置变量:
ENV['GIT_WORK_TREE'] = 'foo'
`echo $GIT_WORK_TREE`
应该返回“foo”。
有关更多信息,请参阅ENV[]=
文档。
[1](撬)主要:0> ENV['GIT_WORK_TREE'] = 'foo' “富” [2] (pry) main: 0> `echo $GIT_WORK_TREE` “富\n”
您可以使用Process.spawn
设置环境:
spawn({'GIT_WORK_TREE' => '/foo/bar'}, "git checkout -f")