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
文件的任何线索?这是一个很好的问题!现在,如果有一个网站,人们可以问一些基本的问题或问题;-)