为什么在Mac OS X终端中标准输入不会显示我输入的内容?
我对我的Mac OS X终端和Django的manage.py
命令行工具以及调试工具pdb的一些行为感到困惑。
当我打开一个新的终端时,我输入的内容会在屏幕上显示出来。但是,如果出现错误,屏幕上突然就不显示我输入的内容了。这种情况会一直持续,直到我关闭那个终端窗口。
虽然输入还是被记录下来了,因为我可以看到标准输出的内容。
比如在pdb.set_trace()
中,我可以输入'l'来查看我在代码中的位置。但是,'l'这个命令不会显示出来,屏幕上只会出现一个空的提示符。
这让调试变得很困难,因为我无法知道自己到底输入了什么。
这可能是什么原因造成的,我该怎么解决这个问题呢?
3 个回答
-1
试着在Mac OS X上安装readline:
$ sudo easy_install readline
这只是我的一个猜测,但也许这样能解决你的问题。
3
如果你退出pdb(Python调试器),你可以输入reset,这样标准输入的回显就会恢复正常。我不太确定在pdb里面能不能执行类似的操作。不过要注意,这样做会清除当前显示的内容。
30
这可能是因为在运行Django的时候出现了错误。有时候,标准输入会消失,这是因为使用了stty
这个命令。你可以手动隐藏你的输入,方法是输入:
$ stty -echo
这样你就看不到自己输入的内容了。要恢复这个状态并解决问题,只需输入:
$ stty echo
这样就可以了。