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?
cat
fichiers binaires ...Réponses:
Cela signifie seulement qu'en zsh, vous ne pouvez pas faire quelque chose comme:
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 -echo
et vous le devezreset
. 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 -echo
ne fonctionne pas.la source
ttyctl -f
interdire les modifications des modes terminaux etttyctl -u
les autoriser.