В каждом дистрибутиве Linux, который я использовал последние 10 лет, было следующее неудобство: вы запускаете программу в терминале, используя bash. После остановки или прерывания программы все, что вы вводите, иногда кажется невидимым. Затем вы можете ввести команду «сброс», и экран очистится, и курсор снова станет видимым.
Из-за этой ошибки я всегда менял оболочку на zsh при первом входе в новый терминал. В zsh невидимая ошибка текста никогда не происходит. Поскольку ошибка существует уже более 10 лет, я начал подозревать, что это особенность bash. Так, может кто-нибудь сказать мне, для чего это хорошо?
Кроме того, где на самом деле находится домашняя страница / трекер ошибок bash. Bash.org, похоже, посвящен «IT bashing», как и канал #bash irc. Почему большинство дистрибутивов Linux содержат оболочку, на которую так сложно дать обратную связь, когда несколько альтернатив по крайней мере так же хороши?
cat
бинарные файлы ...Ответы:
Это только значит, что в Zsh вы не можете сделать что-то вроде:
В bash вышеуказанная команда работает как положено - отключите отображение команды. Только что попробовал в зш - не работает. У кого есть ошибка? ;)
Отключить эхо можно с помощью последовательностей ESC, поэтому, если ваша программа случайным образом отправляет двоичные последовательности на терминал (или когда вы запускаете CTRL- \ некоторую экранно-ориентированную программу), она иногда ведет себя как
stty -echo
и вы должныreset
это делать . Это не ошибка - просто так работают терминалы (и эмуляторы терминалов).Что странно, почему в zsh
stty -echo
не работает.источник
ttyctl -f
запретить изменения режимов терминала иttyctl -u
разрешить их.