Bash 에러 처리

개요

Bash (Bourne Again Shell)은 유닉스 및 리눅스 시스템에서 가장 널리 사용되는 셸입니다. Bash 스크립트를 작성하다 보면 종종 에러가 발생할 수 있습니다. 이러한 에러를 처리하는 방법은 중요한데, 이 포스트에서는 Bash 에러 처리에 대해 알아보겠습니다.

트라이-익셉트-파일 기법

Bash 스크립트에서 에러를 처리하는 일반적인 방법은 “트라이-익셉트-파일” 또는 “트라이-캐치” 기법을 사용하는 것입니다. 이 기법은 에러가 발생할 수 있는 코드 블록을 try로 감싸고, 예외가 발생했을 때 실행할 코드를 catch로 정의합니다.

try {
    # 에러가 발생할 수 있는 코드
    command
} catch {
    # 예외 처리 코드
    echo "에러가 발생했습니다."
}

위의 코드는 에러가 발생할 가능성이 있는 command를 실행하고, 만약 예외가 발생하면 “에러가 발생했습니다.”라는 메시지를 출력합니다.

오류 코드 확인

Bash에서는 각 명령의 실행 결과를 나타내는 “오류 코드”로 작업할 수 있습니다. 일반적으로 성공한 경우 오류 코드는 0으로 설정되고, 에러가 발생한 경우 다른 값을 가집니다. 따라서 오류 코드를 확인하여 예외 처리할 수 있습니다.

if [ $? -ne 0 ]; then
    # 예외 처리 코드
    echo "에러가 발생했습니다."
fi

위의 코드는 이전 명령의 오류 코드를 확인하고, 만약 0이 아니면 “에러가 발생했습니다.”라는 메시지를 출력합니다.

리다이렉션을 통한 에러 처리

Bash에서는 >를 사용하여 표준 에러 출력을 파일로 리다이렉션할 수 있습니다. 이를 활용하여 에러 메시지를 파일에 기록하고, 필요한 시점에서 해당 파일을 읽어올 수 있습니다.

command 2> error.log

if [ -s error.log ]; then
    # 예외 처리 코드
    echo "에러가 발생했습니다."
fi

위의 코드는 command를 실행하고, 표준 에러 출력을 error.log 파일로 리다이렉션합니다. 그리고 error.log 파일의 크기가 0보다 크면 “에러가 발생했습니다.”라는 메시지를 출력합니다.

결론

Bash 스크립트에서 에러 처리는 중요한 부분입니다. 이 포스트에서는 “트라이-익셉트-파일” 기법, 오류 코드 확인, 그리고 리다이렉션을 통한 에러 처리에 대해 알아보았습니다. 이러한 기술을 활용하여 스크립트 에러를 적절하게 처리할 수 있습니다.