有时我必须运行一个命令行工具(一个Python脚本),其输出似乎打破了我的terminal。 执行完成后,input反馈消失了(我看不到我在input什么内容),也不显示换行符。 如果terminal通过Putty
远程启动,在使用gnome-terminal
时在本地也会发生。
例如,问题发生后,如果我inputENTER pwd
ENTER ,我期望看到:
[userA@host006 ~]$ [userA@host006 ~]$ pwd /home/userA [userA@host006 ~]$
但实际上输出是:
[userA@host006 ~]$ [userA@host006 ~]$ /home/userA [userA@host006 ~]$
解决这个问题的唯一方法就是closures那个terminal并开始一个新的terminal。
也许是相关的:脚本输出包含一些基于terminal的格式(例如,颠倒前景/背景以突出显示某些状态消息)。 如果我将这个输出转储到一个文件中,我可以看到像[07mSome Message Here[0m
。
任何想法我可以做什么来防止这种情况?
执行命令“重置”,你的终端应该恢复
参考:
http://www.commandlinefu.com/commands/view/32/salvage-a-borked-terminal
这个问题通常发生在将二进制数据转储到终端的“STDOUT”时,当处理接收到的转义码时,可以通过改变文本的颜色,禁用回声,甚至改变字符集来做任何事情。
避免这种情况的简单方法是确保不会将未知的二进制数据转储到终端,如果必须将其转换为十六进制,以确保不会更改终端设置。