Jedna z aplikacji, z których korzystam w pracy, czasami wkręca się w mój bash, więc nie widzę już własnych danych wejściowych. To znaczy
$ echo foo
foo
$
staje się
$ foo $
Niepoprawnie próbowałem uruchomić, stty -echo
co pogorszyło sytuację, a teraz przestaje akceptować wszystkie polecenia razem, co powoduje, że moje dane wejściowe są w pewnym stanie, który powoduje >
pojawienie się za każdym razem, gdy łamię linię i nic więcej.
Co powinienem zrobić?
bash
command-line
terminal
Kit Sunde
źródło
źródło
reset
na dobry początek. Oczywiście nie można wprowadzić dowolne polecenie teraz do tego terminala Tak od innego spróbować coś takiegocat >/dev/pts/3
, gdzie3
jest twój problem numer terminala, a następnie uderzył w następujących klawiszy:ESC
c
ENTER
Ctrl-D
.Odpowiedzi:
Zwykle lekarstwem na takie rzeczy jest
Nie
stty -echo
powinno być jeszcze gorzej, ponieważ to po prostu wyłącza echo wejścia, a ty już to miałeś.Fakt, że mówisz, że zwraca tylko powoduje, że
>
się pojawia, oznacza, że zacząłeś coś, co powoduje kontynuację w kolejnych wierszach, np.echo '
Zrobi to, ponieważ czeka na zamknięcie,'
aby zakończyć ciąg. Powodują to również inne rzeczy, takie jakif something
; czeka nathen ... fi
część.Prawdopodobnie mógłbyś trafić ctrl- cna tym etapie, aby zatrzymać go na oczekiwanie na resztę polecenia, chyba że terminal był tak pomieszany, że przerwania również nie były generowane.
źródło
ctrl + c
, actrl + z
jednak nie wydaje się niczego osiągnąć.Oprócz odpowiedzi @ wurtel (szczególnie prawdopodobnego wyjaśnienia
>
problemu)stty echo
jest odwrotniestty -echo
, więc możesz z tego skorzystać. Możesz także użyćreset
, który zwykle jest dostarczany z pakietami ncurses.źródło