특정 환경 셸 명령줄(CentOS 7/Windows 호스트의 Vagrant 게스트)에서 CTRL+C를 사용할 수 없는 문제로 어려움을 겪고 있습니다. 나는 거기에서 bash를 사용하고 있습니다. 운영체제는 별 상관 없는 것 같습니다.
예제를 실행 sleep 1000
하고 ctrl-c를 누르십시오.
$ sleep 1000
^C^C^C
따라서 ^C를 입력하세요.
^C
혼란이 일어나기 마련입니다.
$ stty -a
intr = ^C; ...
어떻게만들다이것이 작동할까요?
아래 게시물에서 저는 이 문제를 해결하려는 영감을 얻었습니다. 답변은 많은 설명을 제공하지만 작동 방법에 대한 간단한 답변은 제공하지 않습니다.
Ctrl-C가 작동하지 않는 이유는 무엇입니까?
이것이 제가 겪고 있는 간단한 일인 것 같습니다.
답변1
에서 언급했듯이Bash에서 SIG_IGN 및 SIG_DFL에 신호 트랩을 어떻게 설정할 수 있습니까?간단한 해결책은 다음과 같습니다.
trap - INT
~/.bashrc
예를 들어 다음 코드를 bash에 추가하면 됩니다.
나는 원인을 찾지 않고 그냥 고치기로 결정했습니다.
또 다른 흥미로운 게시물: Ctrl+C를 누르면 ^C 삭제
답변2
키 매핑 문제인 것 같습니다.
쉘 프롬프트에서 다음을 입력하십시오.
stty sane
그런 다음 CTRL-C를 사용하여 명령을 중지해 보십시오. 그래도 작동하지 않으면 다음 출력을 추가하세요.
stty -a
귀하의 질문에. 이 stty -a
명령은 현재 터미널 라인 설정을 나열합니다. 관심 항목을 이라고 합니다 intr
. 잘못 설정 하면 intr
CTRL-C가 적용되지 않습니다.
intr
설정이 잘못된 경우 다음 명령을 사용하여 재설정해 볼 수 있습니다.
stty intr CTRL-V-C
stty intr
즉, 을 입력하고 공백을 입력한 다음 CTRL 키를 누른 채 을 누르고 v키 c사이에 공백이나 다른 문자가 없어야 한다는 의미입니다 .
그런 다음 CTRL-C를 다시 사용하여 명령을 중지하고 결과를 확인하십시오.