bash中的不可见文本错误是错误还是功能?


8

在过去十年中,我使用的每一个Linux发行版都有以下不便之处:您使用bash在终端中运行程序。程序停止或中断后,有时您看不见键入的内容。然后,您可以输入命令“ reset”,屏幕将清除并且光标再次可见。

由于这个错误,每次我第一次登录新终端时,我总是将shell更改为zsh。在zsh中,看不见的文本错误永远不会发生。由于该错误已经存在了10多年了,所以我开始怀疑它是bash的功能。那么,谁能告诉我这有什么好处?

另外,bash主页/错误跟踪器的实际位置在哪里。Bash.org似乎与“ IT扑灭”有关,因此#bash irc频道也是如此。为什么大多数Linux发行版都包含一个很难提供反馈的shell,而至少有几个替代方案却是如此?

bash  shell 

1
那么...您的问题的哪一部分又与编程有关?
伊格纳西奥·巴斯克斯

2
请引导我到正确的地方询问。具有讽刺意味的是,谷歌搜索“ bash shell bug tracker”目前导致该页面。

这就是当您cat二进制文件时发生的情况
Yab

Answers:


11

这仅意味着与zsh相比,您不能执行以下操作:

stty -echo     #turn off echoing what you type
stty echo      #turn on echoing
reset          #reset terminal to the default state

在bash中,以上命令按预期工作-关闭命令回显。刚刚在zsh中尝试过-不起作用。谁有错误?;)

可以通过ESC序列来关闭回显,因此,如果您的程序将二进制序列随机发送到终端(或在CTRL- \某些面向屏幕的程序时),有时它的行为就像stty -echo您必须的那样reset。这不是错误,只是终端(和终端仿真器)的工作方式。

奇怪的是,为什么在zsh中stty -echo不起作用。


2
在zsh中,您可以ttyctl -f禁止更改终端模式,并ttyctl -u允许它们。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.