![sh 스크립트를 bash로 변환했는데 SIGINT에 문제가 발생했습니다.](https://linux55.com/image/165642/sh%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20bash%EB%A1%9C%20%EB%B3%80%ED%99%98%ED%96%88%EB%8A%94%EB%8D%B0%20SIGINT%EC%97%90%20%EB%AC%B8%EC%A0%9C%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
내 스크립트에서 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