sh 스크립트를 bash로 변환했는데 SIGINT에 문제가 발생했습니다.

sh 스크립트를 bash로 변환했는데 SIGINT에 문제가 발생했습니다.

내 스크립트에서 shebang을 #!/bin/bash으로 변경했습니다 #!/bin/sh. 내 스크립트에는 다음 줄이 있습니다.

ctrlc(){
    echo; kill -INT 0; exit 0
}
trap ctrlc 2

bash클릭 하면 ^C모든 것이 제대로 작동하고 프로그램이 정상적으로 종료됩니다. 하지만 sh프로그램 에는 여전히 존재하지만 다음 메시지가 표시됩니다. /mnt/c/Users/user/Documents: 1: Maximum function recursion depth (1000) reached 왜 이 메시지가 표시되며 이를 보지 않을 방법이 있습니까? 감사해요.

답변1

당신은 이것을 시도 할 수 있습니다

 trap 'echo " "; echo "PROGRAM INTERRUPTED"; echo " "; exit 1' INT

관련 정보