직장에서 사용하는 애플리케이션 중 하나가 때때로 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 패키지와 함께 제공되는 를 사용할 수도 있습니다 .