ruby - 需要为反引号命令设置环境变量

标签 ruby shell scripting

如何将环境变量传递给我使用 Kernel#system 等执行的 shell 命令?

说,我想跑

%x{git checkout -f}

但是这个命令依赖于环境变量$GIT_WORK_TREE。怎么设置?

最佳答案

在调用子 shell 之前,您应该能够在 Ruby 的 ENV 散列中设置变量:

ENV['GIT_WORK_TREE'] = 'foo'
`echo $GIT_WORK_TREE`

应该返回“foo”。

参见 ENV[]=文档以获取更多信息。


[1] (pry) main: 0> ENV['GIT_WORK_TREE'] = 'foo'
"foo"
[2] (pry) main: 0> `echo $GIT_WORK_TREE`
"foo\n"

关于ruby - 需要为反引号命令设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16127817/

相关文章:

bash - 如何处理 bash 脚本读取的 CSV 文件中的逗号

scripting - 让 gdb 在中断或崩溃发生时运行命令

Windows 使用代理从 URL 批量下载文件

ruby-on-rails - 排序难度

linux - 使用 ghostscript 9.0 将大的横向 PDF 绘图打印到 a3 LaserJet4(纵向)

ruby-on-rails - 如何解析 url 以获取基本 url? -- rails 3.1

linux - 将数字添加到 bash 中某些行的开头

linux - 将命令输出存储到变量时如何保留换行符?

ruby - 使用 Axlsx gem 读取和编辑 excel 模板?

ruby - 在 ruby​​ 中获取 gem 的版本