在过去 10 年里,我使用过的每个 Linux 发行版都存在以下不便之处:您使用 bash 在终端中运行程序。程序停止或中断后,您输入的任何内容有时都会不可见。然后您可以输入命令“reset”,屏幕就会被清除,光标会再次可见。
由于这个错误,每当我第一次登录新终端时,我总是将 shell 更改为 zsh。在 zsh 中,不可见文本错误从未发生过。由于这个错误已经存在 10 多年了,我开始怀疑它是 bash 的一个功能。那么,有人能告诉我它有什么用吗?
另外,bash 主页/错误跟踪器实际上位于何处。Bash.org 似乎是关于“IT 抨击”的,#bash irc 频道也是如此。为什么大多数 Linux 发行版都包含一个很难提供反馈的 shell,而有几种替代方案至少同样好?
答案1
这仅仅意味着在 zsh 中你不能做类似的事情:
stty -echo #turn off echoing what you type
stty echo #turn on echoing
reset #reset terminal to the default state
在 bash 中,上述命令按预期工作 - 关闭命令的回显。刚刚在 zsh 中尝试过 - 不起作用。谁有 bug?;)
可以使用 ESC 序列关闭回显,因此如果您的程序随机向终端发送二进制序列(或者当您按 CTRL-\ 某些面向屏幕的程序时),它有时会表现得像stty -echo
并且您必须reset
这样做。这不是错误 - 只是终端(和终端仿真器)的工作方式。
奇怪的是,为什么在 zsh 中stty -echo
不起作用。