Является ли невидимая ошибка в bash ошибкой или функцией?

8

В каждом дистрибутиве Linux, который я использовал последние 10 лет, было следующее неудобство: вы запускаете программу в терминале, используя bash. После остановки или прерывания программы все, что вы вводите, иногда кажется невидимым. Затем вы можете ввести команду «сброс», и экран очистится, и курсор снова станет видимым.

Из-за этой ошибки я всегда менял оболочку на zsh при первом входе в новый терминал. В zsh невидимая ошибка текста никогда не происходит. Поскольку ошибка существует уже более 10 лет, я начал подозревать, что это особенность bash. Так, может кто-нибудь сказать мне, для чего это хорошо?

Кроме того, где на самом деле находится домашняя страница / трекер ошибок bash. Bash.org, похоже, посвящен «IT bashing», как и канал #bash irc. Почему большинство дистрибутивов Linux содержат оболочку, на которую так сложно дать обратную связь, когда несколько альтернатив по крайней мере так же хороши?


источник
1
Итак ... какая часть вашего вопроса снова связана с программированием?
Игнасио Васкес-Абрамс
2
Пожалуйста, направьте меня в правильное место, чтобы спросить. Ирония заключается в том, что поиск Google по "bash shell bug tracker" в настоящее время ведет на эту страницу.
Вот что происходит, когда вы catбинарные файлы ...
Яб

Ответы:

11

Это только значит, что в Zsh вы не можете сделать что-то вроде:

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

В bash вышеуказанная команда работает как положено - отключите отображение команды. Только что попробовал в зш - не работает. У кого есть ошибка? ;)

Отключить эхо можно с помощью последовательностей ESC, поэтому, если ваша программа случайным образом отправляет двоичные последовательности на терминал (или когда вы запускаете CTRL- \ некоторую экранно-ориентированную программу), она иногда ведет себя как stty -echoи вы должны resetэто делать . Это не ошибка - просто так работают терминалы (и эмуляторы терминалов).

Что странно, почему в zsh stty -echoне работает.

jm666
источник
2
В zsh вы можете ttyctl -fзапретить изменения режимов терминала и ttyctl -uразрешить их.