经过漫长的谷歌搜索,我找不到防止这种情况的有价值的建议。我决定进入cmd库并重写该方法。
我发现cmd依次执行 precmd , onecmd 和 postcmd
方法。我跟踪了代码,发现onecmd是执行给定行的主要命令。它检查解析,然后检查行。如果line为空,它将调用emptyline方法,并返回最后一个命令,该命令是一个称为
lastcmd 的全局变量。我覆盖了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')可能没什么大不了的,但请记住以防万一。



