Em todas as distribuições Linux que usei nos últimos 10 anos, houve o seguinte inconveniente: Você executa um programa no terminal usando o bash. Depois que o programa é parado ou interrompido, o que você digita às vezes parece invisível. Você pode então digitar o comando "reset" e a tela é limpa e o cursor fica visível novamente.
Por causa desse bug, sempre mudei o shell para zsh sempre que faço login em um novo terminal pela primeira vez. No zsh, o erro de texto invisível nunca acontece. Desde que o bug já existe há mais de 10 anos, comecei a suspeitar que é um recurso do bash. Então, alguém pode me dizer para que serve?
Além disso, onde está localizada a página inicial do bash / rastreador de erros. O Bash.org parece ser sobre "TI bashing", e o canal #bash irc também. Por que a maioria das distribuições Linux inclui um shell que é tão difícil de fornecer feedback, quando várias alternativas são pelo menos tão boas?
cat
arquivos binários ...Respostas:
Isso significa apenas que no zsh você não pode fazer algo como:
No bash, o comando acima funciona conforme o esperado - desative o eco do comando. Apenas tentei no zsh - não funciona. Quem tem um bug? ;)
É possível desativar o eco com as seqüências ESC; portanto, se o seu programa enviar aleatoriamente sequências binárias para o terminal {ou quando você pressiona CTRL- \ algum programa orientado a tela), ele se comporta às vezes
stty -echo
e você precisareset
. Não é um bug - simplesmente é como os terminais (e emuladores de terminal) funcionam.O que é estranho, porque no zsh
stty -echo
não funciona.fonte
ttyctl -f
proibir as alterações nos modos de terminal ettyctl -u
permiti-las.