Shell 스크립트를 작성할 때, 예외 상황에 대처하는 것은 매우 중요합니다. 예외 처리를 통해 스크립트가 예상치 못한 입력이나 오류에 대응할 수 있게 만들 수 있습니다. 이 글에서는 Shell 스크립트에서 발생하는 예외 상황을 다루는 방법에 대해 알아보겠습니다.
1. 오류 발생 시 프로그램 종료
스크립트에서 중요한 명령어가 실패하면, 스크립트는 더 이상 실행되지 않고 종료되어야 합니다. 이 때 set -e
명령어를 사용하면 실패한 명령어가 있을 경우 스크립트가 즉시 종료됩니다.
예시:
#!/bin/bash
set -e
command1
command2
위의 스크립트에서 command1
이 실패하면 command2
는 실행되지 않고 스크립트가 종료됩니다.
2. 에러 메시지 출력
실패한 이유를 파악하기 쉽도록 스크립트에서 에러 메시지를 출력하는 것이 좋습니다. 이를 위해 echo
를 사용하거나 exit
를 호출하여 에러코드와 함께 메시지를 출력할 수 있습니다.
예시:
#!/bin/bash
if [ ! -f "file.txt" ]; then
echo "file.txt를 찾을 수 없습니다." >&2
exit 1
fi
3. 예외 처리
스크립트에서 발생할 수 있는 예외 상황을 미리 예측하여 해당 상황에 맞는 처리를 추가하는 것이 좋습니다. 이를 통해 스크립트의 안정성을 높일 수 있습니다.
예시:
#!/bin/bash
filename=$1
if [ -z $filename ]; then
echo "사용법: $0 파일이름" >&2
exit 1
fi
위의 스크립트는 파일명이 주어지지 않았을 경우 에러 메시지를 출력한 후 종료합니다.
4. 에러 핸들링
일부 오류는 사용자가 직접 처리하도록 하는 것이 좋을 수 있습니다. 이를 위해 trap
명령어를 사용하여 특정 시그널이나 오류가 발생했을 때 실행할 동작을 정의할 수 있습니다.
예시:
#!/bin/bash
cleanup() {
# 에러 처리 로직
}
trap cleanup ERR
위의 스크립트에서 ERR
시그널이 발생하면 cleanup
함수가 호출되어 에러 처리를 수행합니다.
예외 상황에 대응하는 방법은 스크립트의 안정성과 신뢰성을 높이는 데 기여합니다. 적절한 예외 처리를 통해 스크립트를 안정적으로 만들어 보시기 바랍니다.
참고 자료
- Bash Reference Manual: https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html