Python代码test.py
:
import sys
username = str(sys.argv[1])
password = str(sys.argv[2])
print username, password
执行#1:python test.py usr@gmail.com pa$$word
结果#1:usr@gmail.com, pa24481word
预期#1:usr@gmail.com, pa$$word
执行#2:python test.py usr@gmail.com $word@pass
结果#2:usr@gmail.com, @pass
预期#2:usr@gmail.com, $word@pass
我只想在我的代码中获得我传递给String的内容。
机器详细信息:OEL 6.6上的Python 2.6
如果有人可以帮助解决任何操作系统中的通用解决方案 - 那就太棒了!
答案 0 :(得分:4)
这与Python无关。你的shell在将值传递给脚本之前解释了它; bash中的$
引入了一个环境变量。
您必须用单引号括起参数以防止这种情况:
python test.py usr@gmail.com 'pa$$word'