Ruby on rails 在Ruby中获取ZSH环境变量

Ruby on rails 在Ruby中获取ZSH环境变量,ruby-on-rails,ruby,zsh,oh-my-zsh,Ruby On Rails,Ruby,Zsh,Oh My Zsh,我已经在我的~/.zshrc文件中设置了一个环境变量,并用printenv验证了终端中显示的环境变量: AWS_ACCOUNT_ID=111111111 AWS_ACCESS_KEY_ID=222222222 AWS_SECRET_ACCESS_KEY=AAAAABBBBBBBBB34B3B3B3B3B3B3B3B3B STRIPE_PUBLISHABLE_KEY=pk_test_1111111111111111 STRIPE_SECRET_KEY=sk_test_2222222222

我已经在我的
~/.zshrc
文件中设置了一个环境变量,并用
printenv
验证了终端中显示的环境变量:

 AWS_ACCOUNT_ID=111111111
 AWS_ACCESS_KEY_ID=222222222
 AWS_SECRET_ACCESS_KEY=AAAAABBBBBBBBB34B3B3B3B3B3B3B3B3B
 STRIPE_PUBLISHABLE_KEY=pk_test_1111111111111111
 STRIPE_SECRET_KEY=sk_test_222222222222222
我还检查了是否可以在
irb
中获取值:

 ENV["STRIPE_SECRET_KEY"]
 => "sk_test_222222222222222" 
然而,我的Ruby脚本中的值没有得到任何东西。它不会返回任何东西。我现在要做的就是:

 key = ENV["STRIPE_SECRET_KEY"]
 puts key
它返回一个空格(不是
nil
)或任何内容


我缺少什么?

当您使用
sudo
运行命令时,运行脚本的用户可能不是您的用户帐户(但取决于系统,它可能是
root


因此,您需要确保运行脚本的用户实际上是为其设置环境变量的用户。

sudo是超级用户,因此将具有不同的环境变量。您正在访问的设置环境变量的文件位于home目录中?如果不使用sudoSo,它看起来像我的用户shell是
/bin/zsh
,而我的sudo shell是
/bin/sh
,所以这就是问题所在。关于如何从zsh(调用shell)中获取sudo
.bashrc
文件的任何线索?这是一个很好的问题!现在,如果有一个网站,人们可以问一些基本的问题或问题;-)