Bash의 오류 처리

Nilesh Katuwal 2023년6월20일
Bash의 오류 처리

이 문서에서는 bash의 오류 처리에 대해 설명합니다. 종료 코드, errexittrap과 같은 옵션을 알면 강력한 스크립트를 구성하고 bash 문제를 보다 효과적으로 관리할 수 있습니다.

Bash의 종료 코드

종료 코드를 기반으로 오류를 처리하는 것은 명령 실패를 감지하는 표준 기술입니다. 이는 특히 외부 명령과 관련하여 사실입니다.

bash의 curl 명령은 알려진 오류 코드를 기반으로 문제를 처리하는 훌륭한 예입니다. 사용자 정의 루틴과 달리 외부 명령 오류 코드는 완전히 문서화됩니다.

${?}는 주어진 줄 이전에 실행된 마지막 명령의 종료 상태를 저장합니다. ‘0’ 코드는 명령이 성공적으로 실행되었음을 나타냅니다. 그렇지 않으면 문제가 발생한 것입니다.

case {?} in
0) {
true # ok
} ;;
*) {
false # something went wrong
}

간단한 종료 코드로 Bash 오류 처리를 수행할 수 있습니다. 게으른 솔루션을 찾을 때까지 시도할 수 있습니다. 적어도 개인은 오류 코드에 따라 문제를 처리하기 위해 몇 가지 조건을 구현한 후에 이 작업을 수행합니다.

오류 발생 시 종료

오류 발생 시 종료는 의심할 여지 없이 bash 프로그래머가 시작하지 않는 가장 유용한 오류 감지 및 처리 기능입니다.

trap, EXITERROR

trap을 사용하면 쉘이 신호를 받으면 실행할 명령을 지정할 수 있습니다. ‘SIGNAL SPECs’는 신호에 부여된 이름입니다. 일부 빈번한 EXIT, ERROR, DEBUG 및 RETURN 신호.

trap -l 명령을 사용하여 더 많은 신호를 나열할 수 있습니다. 또한 trap -p SIGSPEC을 사용하여 어떤 명령이 특정 신호와 연결되어 있는지 확인할 수 있습니다.

예를 들어 ERR 신호에 해당하는 명령을 결정할 수 있습니다. 이 경우 다음 명령줄을 입력할 수 있습니다.

trap -p ERR

출력이 비어 있으면 trap은 아직 어떤 명령도 신호와 연결하지 않았습니다.

_() { echo oops ; }
 trap _ ERR EXIT

이제 인쇄 신호 명령은 빈 결과를 생성하지 않습니다.

입력:

trap -p EXIT ERR

출력:

trap -- '_' EXIT
trap -- '_' ERR

관련 문장 - Bash Error