经过漫长的谷歌搜索,我找不到防止这种情况的有价值的建议。我决定进入cmd库并重写该方法。
我发现cmd依次执行 , 和 方法。我跟踪了代码,发现onecmd是执行给定行的主要命令。它检查解析,然后检查行。如果line为空,它将调用emptyline方法,并返回最后一个命令,该命令是一个称为 的全局变量。我覆盖了emptyline方法,然后问题得到解决。
这是我编写的重写方法。
def emptyline(self):
"""Called when an empty line is entered in response to the prompt.
If this method is not overridden, it repeats the last nonempty
command entered.
"""
if self.lastcmd:
return self.onecmd(self.lastcmd)
这是我的:
def emptyline(self):
"""Called when an empty line is entered in response to the prompt.
If this method is not overridden, it repeats the last nonempty
command entered.
"""
if self.lastcmd:
self.lastcmd = ""
return self.onecmd('\n')
可能没什么大不了的,但请记住以防万一。