como desfazer “stty intr ^ M”

1

No Unix bash, quando executo stty intr ^M (^ M é Control-M) eu efetivamente me bloqueei de executar qualquer comando. Sempre que pressiono a tecla "return", estou enviando o sinal de interrupção para o shell e meu comando nunca é executado. Suponha que eu tivesse isso no meu .profile (eu não, na verdade ...); como eu poderia sair desse buraco de uma sessão bash com o ^ M configurado para disparar um sinal de interrupção?

Chris

    
por Chris 12.06.2011 / 06:00

3 respostas

3

O bash tem ambos ^ M e ^ J ligados a accept-line por padrão, então você também pode usar.

    
por 12.06.2011 / 06:04
2

Em geral (ou seja, se as coisas estão ainda mais confusas do que isso e você não sabe como corrigi-las), você pode executar stty de outro tty usando

stty sane < /dev/whatever
stty intr ^c < /dev/whatever

Se você não tiver certeza do que tty tem as configurações confusas, use who ou ps para descobrir o que ttys você está usando e apenas stty < /dev/whatever cada um até encontrar o que está errado .

    
por 12.06.2011 / 07:32
0

Eu sugeriria stty sane ^J , mas isso não redefine a interrupção. Você terá que fazer algo assim:

$ stty intr ^C^J

O ^C representa o Control-C. Geralmente você pode conseguir isso pressionando Control-V / Control-C.

    
por 12.06.2011 / 06:52

Tags