저는 학교 프로젝트를 위해 작성된 bash 실행 게임을 가지고 있으며 현재 사용자가 실제 게임에서 카테고리 선택 메뉴로 돌아갈 수 있도록 ctrl-c 종료 명령을 while 루프 중단으로 대체하려고 합니다.
현재 사용하고 있는 코드는 다음과 같습니다.
trap "break" SIGINT
while 루프 내부:
read CHAR
루프에서 텍스트를 인쇄하고 sleep 명령을 실행할 때 모든 것이 잘 작동하지만 알고리즘이 읽기 명령에 있을 때 ctrl-c를 누르면 콘솔에 "^C"만 입력됩니다.
답변1
Bash가 명령이 완료되기를 기다리고 트랩이 설정되었다는 신호를 받으면 명령이 완료될 때까지 트랩이 실행되지 않습니다.
그렇기 때문에 중단되지 않습니다 read
.
^C
설정으로 인해 쉘이 아닌 터미널에서 출력됩니다 echoctl
. 실행하면 나타나지 않습니다 stty -echoctl
.