Python和环境变量

mok*_*ebe 2 python unix bash python-2.7

在ubuntu终端中执行以下命令我有预期的结果:

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

同时:

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

结果:NameError:未定义名称'number'.

为什么?是否可以使用python -c获取env变量?

Uli*_*rro 5

确保更改双引号的单引号(至少是外部引号)以避免出现此问题

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

工作正常,因为我的单引号在双引号内.

编辑:您的示例的问题不在于您在Python中使用单引号,问题是它是您的shell解释这些单引号.

从bash手册页:

单引号之间可能不会出现单引号,即使前面有反斜杠也是如此.