2017-07-25 144 views
2

執行在Ubuntu終端下列命令我期望的結果:Python和環境變量

$export number=3 
echo $number ###3 
$python 
>>>import os 
>>>print(os.environ['number']) ###prints 3 

而:

$python -c 'import os;print(os.environ['number'])' 

結果:NameError:名稱 '編號' 沒有定義。

爲什麼?是否有可能使用python -c獲取env變量?

+1

python -c'import os; print(os.environ [「number」])' – Chengzhi

回答

5

確保您更改了雙引號單引號(外的,至少),以避免這個問題

python -c "import os;print(os.environ['number'])" 3

工作得很好,因爲我的單引號是雙引號。

編輯:你的例子的問題不是你在Python中使用單引號的事實,問題是它是你的shell解釋這些單引號。

從bash的手冊頁:

單引號之間可能不會出現單引號,即使前面有反斜槓。

+0

謝謝,但是這個問題的根源是什麼?我認爲雙引號和單引號可以在python中互換使用嗎? – mokebe

+0

我會編輯我的答案以提供更多詳細信息。 –

+0

對於字符串是(「mystring」與'mystring'相同),但在您的情況下,計算機會解析您的四個單引號,並認爲第一個字符串以第二個單引號結尾,而您希望它以第四個引號結尾。這就是爲什麼你必須使用單引號和雙引號 – aless80