[shell] Shell 스크립트에서의 예외 처리 스타일 가이드

목차


들어가기

Shell 스크립트를 작성하다 보면 예외 처리가 중요한 일입니다. 사용자 입력 오류, 시스템 오류 등 다양한 상황에 대비할 필요가 있습니다. 이 가이드에서는 Shell 스크립트에서의 예외 처리에 대해 다양한 스타일을 살펴보고, 최적의 방법을 찾아보겠습니다.


기본적인 예외 처리

Shell 스크립트에서 기본적인 예외 처리는 if-elsecase 문을 사용하는 방법입니다. 예를 들어, 파일이 존재하지 않을 때의 처리는 다음과 같이 할 수 있습니다.

if [ ! -f file.txt ]; then
  echo "파일이 존재하지 않습니다."
fi

또는

if ! [ -f file.txt ]; then
  echo "파일이 존재하지 않습니다."
fi

위 코드에서 file.txt 파일이 존재하지 않을 경우 메시지를 출력합니다.


좀 더 복잡한 예외 처리

좀 더 복잡한 예외 처리를 위해서는 trap을 사용할 수 있습니다. trap은 시그널을 처리하는데 사용되며, 특히 스크립트 실행 중에 발생하는 오류에 대응할 때 유용합니다.

예를 들어, 스크립트 실행 중 Ctrl-C를 입력받았을 때의 처리는 다음과 같이 할 수 있습니다.

trap 'echo "Ctrl-C 입력이 감지되었습니다."' SIGINT

Ctrl-C를 입력받으면 “Ctrl-C 입력이 감지되었습니다.”라는 메시지가 출력됩니다.


나만의 예외 처리 스타일 만들기

이외에도 사용자 정의 함수를 만들어서 예외 처리를 할 수 있습니다. 이는 가독성과 유지보수를 향상시키는 데 도움이 됩니다. 다음은 사용자 정의 함수를 만들어 예외 처리하는 예시입니다.

function handle_error {
  echo "에러가 발생했습니다: $1"
  exit 1
}

# 사용자 정의 함수 호출
handle_error "파일을 찾을 수 없음"

함수 handle_error는 인자로 받은 메시지를 출력하고 스크립트를 종료합니다.


마무리

Shell 스크립트에서의 예외 처리는 다양한 방식으로 가능합니다. 기본적인 if-elsecase 문을 사용하는 것부터 좀 더 복잡한 trap을 활용하는 방법, 사용자 정의 함수를 만들어 나만의 스타일을 적용하는 방법까지 다양한 방법이 있습니다. 프로젝트의 성격과 개발자의 취향에 맞게 최적의 방법을 선택하는 것이 중요합니다.


본 문서는 GNU Bash Reference Manual를 참고하여 작성되었습니다.