2016-02-16 100 views
-1

我已經在我的~/.zshrc文件中設置環境變量,並證實是在終端顯示與printenv獲取ZSH環境變量在Ruby中

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)或任何東西。

nothing

我缺少什麼?

+0

sudo是超級用戶,所以會有不同的env變量。您在設置環境變量的位置訪問的文件位於您的主目錄中?不用sudo – osman

回答

1

當您使用sudo運行命令時,運行該腳本的用戶可能不是您的用戶帳戶(但取決於系統可能是root)。

因此,您需要確保運行腳本的用戶實際上是您爲其設置環境變量的用戶。

+0

因此,它看起來像我的用戶shell是'/ bin/zsh',而我的sudo shell是'/ bin/sh',所以這會是問題。任何線索如何從zsh(調用shell)獲取sudo'.bashrc'文件? – Godzilla74

+0

這是一個很好的問題!現在,如果只有一個網站可以提出基本的[su]或[unix.se]問題;-) –