Bash每次都需要重置

  • 本文关键字:Bash bash
  • 更新时间 :
  • 英文 :


有一段时间,我的bash没有显示我写的东西("回显"?),每次打开新会话时我都必须运行reset命令。

我只是通过在~/.bashrc的末尾添加reset来"修复"它,但这不是最好的解决方案,因为它在我的通用设置中是计算机特定的垃圾,而且这个命令需要时间。

我应该怎么做才能永久修复这些设置

有趣的是,例如,当我意外地对二进制文件进行cat时,就会发生这种情况。更普遍地说,当有东西向终端写入ansi控制字符/序列并破坏它时(我认为),就会发生这种情况。原因非常依赖于环境,弄清楚为什么会在您的机器上发生这种情况不太适合stackoverflow的Q/A格式。然而,一些人已经提供了如何自动重置终端的线索。

没有永久的解决方法,但你可以通过定义来做一些聪明的事情

PROMPT_COMMAND=__prompt_command

在那。。。

如果stty报告-echo,则运行stty echo。


PROMPT_COMMAND=zumba
zumba() { PS1="$: "; stty  | grep -qe -echo && stty echo; } 

老实说,我不确定这是否会对你的shell产生不利影响——比如一些非交互式进程中断或一些ncurses程序中断。

除了提示命令,您还可以使用DEBUG陷阱技巧在每个命令之前运行一些东西

请参阅:https://superuser.com/questions/175799/does-bash-have-a-hook-that-is-run-before-executing-a-command

相关内容

  • 没有找到相关文章

最新更新