【问题标题】:Get ZSH environment variable in Ruby在 Ruby 中获取 ZSH 环境变量
【发布时间】:2016-02-16 23:05:25
【问题描述】:

我在我的~/.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 是超级用户,所以会有不同的环境变量。您正在访问的设置环境变量的文件在您的主目录中?不用 sudo 就可以了

标签: ruby-on-rails ruby zsh oh-my-zsh


【解决方案1】:

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

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

【讨论】:

  • 所以,看起来我的用户 shell 是 /bin/zsh 而我的 sudo shell 是 /bin/sh,所以这就是问题所在。任何线索如何从 zsh(调用 shell)获取 sudo .bashrc 文件?
  • 这是个好问题!现在,如果有一个网站可以问基本的Super UserUnix & Linux 问题;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 2019-04-11
  • 2012-08-22
  • 1970-01-01
  • 2016-01-27
  • 1970-01-01
  • 2020-08-11
相关资源
最近更新 更多