2

一段时间以来,我的bash 没有显示我写的内容(“回声”?),reset每次打开新会话时我都必须运行命令。

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

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

4

1 回答 1

0

有趣的是,例如,当我偶然发现二进制文件时,就会发生这种情况。更一般地说,当某些东西正在向终端写入 ansi-control 字符/序列并破坏它(我认为)时,可能会发生这种情况。原因非常依赖于环境,并且弄清楚为什么在您的机器上发生这种情况不太适合 stackoverflow 的 Q/A 格式。但是,有些人提供了有关如何自动重置终端的线索。

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

PROMPT_COMMAND=__prompt_command

并且在那...

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


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

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

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

看到这个:https ://superuser.com/questions/175799/does-bash-have-a-hook-that-is-run-before-executing-a-command

于 2021-11-01T16:29:14.580 回答