트랩 핸들러가 작동하지 않나요?

트랩 핸들러가 작동하지 않나요?

아래 트랩에 문제가 있는 걸까요?

trap cleanup SIGINT

cleanup() {
            echo "Exiting script ..."
        }

echo클릭해도 명령이 표시되지 않습니다.Ctrl+c

이 코드 조각은 무한 루프가 있는 대규모 스크립트의 맨 아래에 있습니다 while.

$ bash --version
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)

답변1

트랩은 누를 때 활성화/장착되어야 합니다. Ctrl+C그렇지 않으면 (분명히) 트리거되지 않습니다. 이때 함수도 정의해야 합니다. 이는 코드를 스크립트 상단(처음 부분)으로 이동하는 것을 의미합니다.

또한 아마도 다음 함수를 정의해야 할 것입니다.앞으로트랩을 설치하십시오. 그렇지 않으면 트랩이 그 사이에 트리거되면 "찾을 수 없음" 오류가 발생합니다.

예:

#!/bin/bash

cleanup() { echo 'Exiting script ...'; }

trap cleanup SIGINT

sleep 300

관련 정보