Bash의 에코가 멈추면 어떻게 해야 합니까?

Bash의 에코가 멈추면 어떻게 해야 합니까?

직장에서 사용하는 애플리케이션 중 하나가 때때로 bash와 충돌하여 더 이상 입력 내용이 표시되지 않습니다. 즉

$ echo foo
foo
$

~이 되다

$ foo $

나는 실수로 를 실행하려고 했고 stty -echo, 이로 인해 상황이 더 악화되었고 이제 모든 명령을 받아들이는 것이 중단되었습니다. 이로 인해 내 입력은 >모든 개행만 표시되고 다른 것은 아무것도 발생하지 않는 상태가 되었습니다.

어떻게 해야 합니까?

답변1

이런 종류의 문제를 해결하는 일반적인 방법은

stty sane

상황을 악화시켜서는 안 됩니다 stty -echo. 이는 이미 가지고 있는 입력의 에코를 끄는 것이기 때문입니다.

사실, return이라고 말하는 것은 단지 >발생을 일으키는 것입니다. 즉, 다음 줄이 계속되도록 하는 무언가를 시작했음을 의미합니다. 예를 들어 문자열이 echo '끝나기를 기다리고 있기 때문에 그렇게 할 것입니다 . '다른 이유로 인해 이 문제가 발생할 수 있습니다. 예를 들어 섹션 if something을 기다리고 있습니다 then ... fi.

터미널이 너무 복잡해서 인터럽트도 생성하지 않는 한, 해당 단계에서 명령의 나머지 부분을 기다리는 것을 중지하려면 ctrl- 를 누를 수 있습니다 .c

답변2

>@wurtel의 답변(특히 질문의 가능한 해석) 외에도 stty echo반대이므로 stty -echo사용할 수 있습니다. reset일반적으로 ncurses 패키지와 함께 제공되는 를 사용할 수도 있습니다 .

관련 정보