8

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

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

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

1 ответ1

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 не работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .