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