【问题标题】:Set local ENV variable in Windows command from Ruby在 Ruby 的 Windows 命令中设置本地 ENV 变量
【发布时间】:2012-05-13 12:01:39
【问题描述】:

我为本地开发人员创建了一个 Rake 任务,它将构建项目,开始监视它以进行自动编译,并启动一个瘦服务器以查看已编译的应用程序。

我实现了 Foreman 以允许设置项目现在所依赖的本地 ENV 变量。它工作得很好 - 除了它还需要在 Windows 上工作。

我的解决方案是解析 .env 文件并在我启动服务器时手动设置变量,ala:

$ MY_ENV_VAR=12345 ruby -rubygems app.rb

当我自己手动执行它时效果很好。但是,如果我尝试通过我的 Rake 任务 - sh %{MY_ENV_VAR=12345 ruby -rubygems app.rb} 执行该命令,它会失败:

Command failed with status (127): [MY_ENV_VAR=12345 ruby -rubygems app.rb...]

我尝试使用sh %{}execsystem%x{} 和反引号来执行它,但没有成功。有什么建议吗?

【问题讨论】:

    标签: ruby windows command-line rake environment-variables


    【解决方案1】:

    尝试使用Kernel#system with the env argument

    env = {'FOO' => '123'}
    cmd = 'echo $FOO'
    system(env, cmd) # => prints "123", returns true
    

    【讨论】:

    • 谢谢!这让我发疯了!
    猜你喜欢
    • 2020-12-03
    • 2019-08-09
    • 2016-10-29
    • 2021-07-23
    • 2014-09-20
    • 2022-01-24
    • 1970-01-01
    • 2012-07-22
    • 2018-07-14
    相关资源
    最近更新 更多