【发布时间】:2010-07-27 18:07:58
【问题描述】:
我有一个简单的 Python 脚本,它接收用户名和密码作为参数,但我的密码包含两个感叹号。当我调用我的脚本时
salafek@dellboy:~/Desktop/$ emailsender.py -u username -p pass!!
我之前输入的命令替换了感叹号:
salafek@dellboy:~/Desktop/$emailsender.py -u username -p "passemailsender.py -u username -p passwget wget http://www.crobot.com.hr/templog"
我可以使用反斜杠 (\) 转义感叹号,但我的密码会更改。
有没有解决办法,如何在不更改密码的情况下转义感叹号?
【问题讨论】:
-
第二个命令没有多大意义,你想在那里做什么?特别是
passemailsender.py -u username -p passwget wget ...部分 -
!!被shell替换,它被最后执行的命令替换。这不是特定于 python 的。
-
@Infinity - Bash 解释“!!”作为您输入的最后一个命令。因此,当他在没有使用单引号或反斜杠转义密码的情况下输入命令时,bash 会在“!!”的位置插入他的最后一个命令。是。