Le bug de texte invisible dans bash est-il un bug ou une fonctionnalité?

8

Sur chaque distribution Linux unique que j'ai utilisée au cours des 10 dernières années, il y a eu l'inconvénient suivant: vous exécutez un programme dans le terminal en utilisant bash. Une fois le programme arrêté ou interrompu, tout ce que vous tapez apparaît parfois invisible. Vous pouvez alors entrer la commande "reset" et l'écran est effacé et le curseur est de nouveau visible.

À cause de ce bogue, j'ai toujours changé le shell en zsh chaque fois que je me connecte à un nouveau terminal pour la première fois. Dans zsh, le bug de texte invisible ne se produit jamais. Depuis que le bogue existe depuis plus de 10 ans maintenant, j'ai commencé à soupçonner qu'il s'agit d'une fonctionnalité de bash. Alors, quelqu'un peut-il me dire à quoi cela sert?

En outre, où se trouve réellement la page d'accueil bash / le suivi des bogues. Bash.org semble concerner le "dénigrement informatique", tout comme le canal #bash irc. Pourquoi la plupart des distributions Linux incluent-elles un shell auquel il est si difficile de donner des commentaires, alors que plusieurs alternatives sont au moins aussi bonnes?


la source
1
Alors ... quelle partie de votre question est à nouveau liée à la programmation?
Ignacio Vazquez-Abrams
2
Veuillez me diriger vers le bon endroit pour demander. L'ironie est qu'une recherche Google sur "bash shell bug tracker" mène actuellement à cette page.
C'est ce qui se passe lorsque vous catfichiers binaires ...
Yab

Réponses:

11

Cela signifie seulement qu'en zsh, vous ne pouvez pas faire quelque chose comme:

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

En bash, la commande ci-dessus fonctionne comme prévu - désactivez l'écho de la commande. Je viens d'essayer dans zsh - ne fonctionne pas. Qui a un bug? ;)

Désactiver l'écho est possible avec les séquences ESC, donc si votre programme envoie au hasard des séquences binaires au terminal, {ou lorsque vous CTRL- \ un programme orienté écran), il se comporte parfois comme stty -echoet vous le devez reset. Ce n'est pas un bug - c'est simplement le fonctionnement des terminaux (et des émulateurs de terminaux).

Ce qui est étrange, pourquoi dans zsh stty -echone fonctionne pas.

jm666
la source
2
Dans zsh, vous pouvez ttyctl -finterdire les modifications des modes terminaux et ttyctl -ules autoriser.