Wie stelle ich das Eingangsecho im Terminal wieder her?

12

Manchmal, wenn ein Skript an einer Kennwortabfrage beendet wird, kann ich nicht mehr sehen, dass meine Eingabe im Terminal wiedergegeben wird. Das heißt, normalerweise an einem Terminal sehe ich Folgendes:

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

Aber in diesem Fall sehe ich nicht, was ich eingegeben habe.

Ich weiß, dass ich das Terminal neu starten kann, um die regulären Einstellungen wiederherzustellen. Gibt es jedoch eine Möglichkeit, das Eingangsecho ohne Neustart wiederherzustellen?

Congusbongus
quelle

Antworten:

20

Für Bash tippe ich normalerweise nur resetund es behebt alles, was "lustig" geblieben ist. Sieht so aus, als wäre es auch bekannt als, tsetaber das Aufrufen jedes einzelnen macht etwas anderes.

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.
Xen2050
quelle
6

Verwenden Sie den sttyBefehl. Führen Sie diesen Befehl aus:

stty echo

Dadurch wird das Echo (Drucken von Eingabezeichen) wiederhergestellt, das wahrscheinlich während der Kennwortabfrage deaktiviert wurde.

Führen Sie aus, um alle Terminaleinstellungen anzuzeigen stty -a. Während die Eingabe ausgeblendet war, sollte dies -echoirgendwo in der Ausgabe angezeigt werden. Nach dem Fix sollte es stattdessen echoan seiner Stelle angezeigt werden.

Congusbongus
quelle