在 Ruby 中获取 ZSH 环境变量
Get ZSH environment variable in Ruby
我在我的 ~/.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 脚本中的值没有得到任何结果。它没有 return 任何东西。我现在 运行 是:
key = ENV["STRIPE_SECRET_KEY"]
puts key
其中 return 是空白 space(不是 nil
)或任何东西。
我错过了什么?
当您使用 sudo
命令 运行 时,执行脚本的用户 运行 可能不是您的用户帐户(但根据系统的不同,它可能是 root
).
因此,您需要确保执行脚本的用户运行实际上是您为其设置环境变量的用户。
我在我的 ~/.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 脚本中的值没有得到任何结果。它没有 return 任何东西。我现在 运行 是:
key = ENV["STRIPE_SECRET_KEY"]
puts key
其中 return 是空白 space(不是 nil
)或任何东西。
我错过了什么?
当您使用 sudo
命令 运行 时,执行脚本的用户 运行 可能不是您的用户帐户(但根据系统的不同,它可能是 root
).
因此,您需要确保执行脚本的用户运行实际上是您为其设置环境变量的用户。