Como restauro o eco de entrada no terminal?

7

Às vezes, quando um script é morto em um prompt de senha, não consigo mais ver minha entrada sendo ecoada no terminal. Ou seja, normalmente em um terminal, vejo isso:

$ _
<after typing 'foobar':>
$ foobar_

Mas neste caso, não vejo o que eu digitei.

Eu sei que posso reiniciar o terminal para recuperar suas configurações regulares, mas existe uma maneira de restaurar o eco de entrada sem reiniciar?

    
por congusbongus 31.12.2014 / 01:30

2 respostas

12

Para o bash eu normalmente só digito reset e ele conserta tudo o que ficou "engraçado". Parece que também é conhecido como tset , mas invocar cada um faz algo um pouco diferente.

tset, reset - terminal initialization

   When  invoked  as  reset,  tset  sets  cooked and echo modes, turns off
   cbreak and raw modes, turns on newline translation and resets any unset
   special  characters  to  their default values before doing the terminal
   initialization described above.  This is useful after  a  program  dies
   leaving a terminal in an abnormal state.  Note, you may have to type

       <LF>reset<LF>

   (the  line-feed character is normally control-J) to get the terminal to
   work, as carriage-return may no longer  work  in  the  abnormal  state.
   Also, the terminal will often not echo the command.
    
por 31.12.2014 / 01:46
2

Use o comando stty . Especificamente, execute este comando:

stty echo

Isso restaurará o eco (caracteres de entrada de impressão), que provavelmente foi desativado durante o prompt de senha.

Para ver todas as configurações do terminal, execute stty -a . Enquanto a entrada estava oculta, isso deve mostrar -echo em algum lugar na saída. Após a correção, ele deve mostrar echo em seu lugar.

    
por 31.12.2014 / 01:30