[shell] Shell 스크립트에서의 예외 처리와 동적 오류 해결 방법

Shell 스크립트를 작성하다 보면 예외 상황을 처리하고 동적 오류를 해결해야 하는 경우가 많습니다. 이러한 상황을 처리하기 위해 몇 가지 효율적인 방법이 있습니다.

내장 예외 처리 기능 활용

Shell 에는 명령 실행 결과에 따라 다음 명령을 조건부로 실행하는 내장 조건문 및 예외 처리 기능이 있습니다. 예를 들어, if문을 사용하여 특정 명령 실행의 성공 여부에 따라 다음 조치를 취할 수 있습니다.

if [ $? -ne 0 ]; then
  echo "오류 발생: 이전 명령 실행이 실패했습니다."
  exit 1
fi

위의 예시는 이전 명령 실행의 종료 코드를 확인하여 이에 따라 오류 메시지를 출력하고 스크립트를 종료합니다.

오류 처리 함수 작성

동일한 오류 처리 로직이 여러 번 사용된다면, 관련 코드를 함수로 작성하여 중복을 줄일 수 있습니다. 함수를 사용하여 오류가 발생했을 때 실행될 처리 로직을 미리 정의하고 필요한 곳에서 호출하여 사용할 수 있습니다.

handle_error() {
  echo "오류 발생: $1"
  exit 1
}

위의 예시는 handle_error라는 오류 처리 함수를 정의하였습니다.

오류 무시

일부 오류는 무시하고 계속 진행해야 하는 경우가 있습니다. 이때는 || 연산자를 사용하여 오류가 발생해도 다음 명령이 실행될 수 있도록 할 수 있습니다.

command_that_might_fail || true

위의 예시는 특정 명령이 실패해도 스크립트가 종료되지 않도록 하는 방법을 보여줍니다.

결론

Shell 스크립트에서의 예외 처리는 스크립트의 안정성과 신뢰성을 높이는 중요한 요소입니다. 내장된 예외 처리 기능과 함수 정의를 통해 오류 처리 로직을 구현하고, 오류 무시를 통해 유연한 스크립트를 작성할 수 있습니다.

참고 자료