[shell] Shell 스크립트에서의 예외 처리 패턴
쉘 스크립트를 작성할 때 예외 상황에 대비하는 것은 매우 중요합니다. 예외 처리를 통해 스크립트의 안정성을 높일 수 있고, 오류 발생 시 적절한 조치를 취할 수 있습니다.
set -e
를 사용하여 오류 처리하기
보통 쉘 스크립트에서는 set -e
를 사용하여 스크립트 실행 중 발생한 오류를 자동으로 처리하도록 할 수 있습니다.
#!/bin/bash
set -e
# 스크립트 내용
set -e
를 사용하면 어떤 명령어가 실패하면 스크립트가 즉시 종료되도록 설정됩니다.
trap
을 사용하여 오류 처리하기
때로는 특정 시그널(예를 들어, SIGINT
또는 SIGTERM
)이 발생할 때 특정 작업을 수행해야 할 수 있습니다. 이때 trap
을 사용하여 해당 시그널을 처리할 수 있습니다.
#!/bin/bash
trap "echo '이 스크립트는 강제 종료되었습니다.' && exit 1" SIGINT SIGTERM
# 스크립트 내용
위 예제에서는 SIGINT
또는 SIGTERM
시그널이 발생할 때 메시지를 출력하고 스크립트를 종료하도록 했습니다.
if-else
문을 사용하여 오류 처리하기
일부 명령어는 실패할 수 있는데, 이때 if-else
문을 사용하여 오류를 처리할 수 있습니다.
#!/bin/bash
if command; then
# 성공했을 때 실행할 내용
else
# 실패했을 때 실행할 내용
fi
위 예제에서는 command
가 성공하면 첫 번째 블록이 실행되고, 실패하면 두 번째 블록이 실행됩니다.
결론
쉘 스크립트를 작성할 때 예외 처리는 매우 중요합니다. set -e
를 사용하여 자동으로 오류를 처리하도록 하거나, trap
을 사용하여 특정 시그널을 처리하도록 하고, if-else
문을 사용하여 명령어의 성공 여부에 따라 처리를 할 수 있습니다.
참고문헌: Bash Reference Manual