Python和环境变量
在UbuntuTerminal I中执行以下命令会得到预期的结果:Python和环境变量,python,bash,python-2.7,unix,Python,Bash,Python 2.7,Unix,在UbuntuTerminal I中执行以下命令会得到预期的结果: $export number=3 echo $number ###3 $python >>>import os >>>print(os.environ['number']) ###prints 3 而: $python -c 'import os;print(os.environ['number'])' $python-c'导入操作系统;打印(os.environ['number'])”
$export number=3
echo $number ###3
$python
>>>import os
>>>print(os.environ['number']) ###prints 3
而:
$python -c 'import os;print(os.environ['number'])'
$python-c'导入操作系统;打印(os.environ['number'])”
结果:name错误:未定义名称“number”
为什么??是否可以使用python-c获取环境变量?确保将单引号更改为双引号(至少是外部引号),以避免出现该问题
python-c“导入操作系统;打印(os.environ['number'])”
3
很好用,因为我的单引号在双引号内
编辑:您的示例的问题并不是您在Python中使用单引号,而是您的shell在解释这些单引号
从bash手册页:
单引号不能出现在单引号之间,即使前面有反斜杠
python-c’导入操作系统;print(os.environ[“number”])谢谢,但是这个问题的根源是什么?我认为双引号和单引号在python中可以互换使用?对于字符串是的(“mystring”与“mystring”相同),但在您的例子中,计算机解析您的四个单引号,并认为第一个字符串在第二个单引号上结束,而您希望它在第四个单引号上结束。这就是为什么必须使用单引号和双引号的原因我已经更新了答案,使其更有意义,但它实际上与Python无关,只是引用规则。你可以多读一点(也可以理解为什么这是一个坏主意)