我有简单的Python脚本接收用户名和密码作为参数。 但我的密码包含两个感叹号。当我打电话给脚本:
salafek @ dellboy:〜/桌面/ $ emailsender.py -u用户名-p通过!
我之前input的命令replace感叹号
salafek @ dellboy:〜/ Desktop / $ emailsender.py -u用户名-p“passemailsender.py -u用户名-p passwget wget http://www.crobot.com.hr/templog”
我可以用反斜杠()逃避惊叹号,但我的密码更改。 有没有解决这个问题,我如何逃避感叹号而不改变密码?
将parameter passing给线程而恢复。 (WINAPI)
从ARGV访问variables
从堆栈指针查找函数参数值
Linux / Bash:如何取消引用?
在C / C ++中创build一个unix / linux命令行工具的最佳做法是什么?
分配给发送给方法的参数的大小
使用Windowsbatch file备份用户指定的位置和用户指定的文件扩展名中的文件
我不明白这个参数的扩展:$ {p // /}
批处理脚本传递多个参数来调用
在shell脚本中使用for循环遍历参数列表?
你应该能够简单地把东西用单引号包装在shell中。
$ emailsender.py -u username -p 'pass!!'
你需要用引用它,或者用单引号引用它,否则你的shell会解释它。
emailsender.py -u username -p pass!!
要么
emailsender.py -u username -p 'pass!!'
正如其他人所提到的,这个问题并不是Python所特有的,而是由你如何将密码参数传递给脚本引起的。
您需要将密码字符串封装在单引号中,以确保将其输入到脚本中,并且不会被shell解释。
如果有可能包含感叹号或其他特殊字符,则可以为用户名执行此操作。
例如:
emailsender.py -u 'username' -p 'pass!!'
你有没有尝试过
$ emailsender.py -u username -p "pass!!"
编辑 – 这将无法正常工作。 阅读下面的评论