Dec
10
C에서는 시그널 발생시 해당 시그널을 처리하게끔 만들어주는 함수로 raise()가 있다.
쉘 프로그래밍에서도 이와 비슷한 기능을 하는 명령어가 있는데 ‘trap’이다.
trap을 이용하여 실행할 명령어와 처리하고자 하는 시그널을 지정해주면 된다. 만일 실행할 명령어를 지정하지 않고 처리할 시그널을 지정하면 해당 시그널은 무시하는 것으로 처리된다.
trap 명령어의 간단한 사용예를 보면 다음과 같다. 다음의 경우는 INT시그널(SIGINT와 동일)이 발생하면 명령1과 명령2가 자동으로 실행되도록 지정한 것이다.
trap “명령1; 명령2” INT
trap 명령을 수행하면서 지정할 수 있는 시그널의 종류를 확인하려면 shell 상에서 kill -l 명령을 실행하면 된다. 그러면 다음과 같이 쉘에서 처리할 수 있는 시그널의 종류가 화면에 디스플레이 된다.