【发布时间】:2017-10-08 06:21:32
【问题描述】:
我正在使用 oh-my-zsh dotenv plugin,它会加载 .env 文件(如果存在),每当我将 cd 加载到项目目录时。
我知道它有效,因为我可以在运行 set cmd 时看到我的自定义环境变量设置。
我也可以从命令行回显我的自定义环境变量:
$ echo $FOO
'foo'
但是,我无法通过 env 命令或 Ruby 访问此环境变量:
$ irb
2.4.1 :001 > ENV['FOO']
nil
如何确保从我的.env 加载的环境变量可以从 Ruby 访问?
【问题讨论】:
-
如果你
require 'dotenv/load'可以吗? -
我没有使用
dotenvgem(只是 oh-my-zsh 插件),因为我认为 shell 插件会自动导出变量。 -
应该的。您是否尝试过运行
export FOO=test然后 irb:ENV['FOO']?这适用于 Mac OS 上的 iTerm2。 -
如果我手动导出,那么可以。我在看this SO post,我认为问题是变量只是本地shell,
env看不到。但我不确定如何解决这个问题。 -
您是否有不想使用 gem 的特殊原因?如果
.env在工作目录中,它将起作用。在 ruby 程序中依赖 zsh 功能似乎很奇怪。您可以轻松地从 repo 中排除您的.env文件
标签: ruby environment-variables zsh