[shell] 쉘 스크립트 에러 처리

쉘 스크립트를 작성할 때는 에러 처리를 고려해야 합니다. 쉘 스크립트를 실행하다가 에러가 발생하면 적절한 방법으로 처리해야 합니다.

에러 처리를 위해 우리는 if 문, &&, || 등의 조건문과 함께 에러 발생 시 스크립트의 동작을 제어할 수 있습니다.

set -e 옵션

쉘 스크립트에서 set -e 옵션을 사용하면 에러가 발생하면 즉시 스크립트를 종료하게 됩니다. 이 옵션을 사용하면 스크립트에서 발생한 에러를 놓치지 않고 처리할 수 있기 때문에 유용합니다.

#!/bin/bash
set -e

# 스크립트 내용

예를 들어, 위와 같이 스크립트의 가장 위에 set -e를 추가하면 스크립트에서 에러가 발생하면 즉시 스크립트가 종료됩니다.

조건문으로 에러 처리

때로는 스크립트 실행 중에 에러가 발생해도 무시하고 계속 진행해야 할 때가 있습니다. if 문이나 &&, || 연산자를 사용하여 조건에 따라 에러 처리를 할 수 있습니다.

#!/bin/bash

# 에러가 발생해도 계속 진행
command || true

# 에러가 발생하면 처리
command && echo "Success" || echo "Failed"

위와 같이 || true를 사용하면 에러가 발생해도 계속 진행하고, &&|| 연산자를 사용하여 조건에 따라 성공이나 실패 메시지를 출력할 수 있습니다.

예외 처리

특정 명령어의 실행 결과에 따라 에러를 처리해야 할 때는 if 문을 사용하여 예외 처리를 할 수 있습니다.

#!/bin/bash

# 명령어 실행
result=$(command)
if [ $? -ne 0 ]; then
  echo "Command failed: $result"
fi

위와 같이 $? 변수를 사용하여 바로 이전 명령어의 종료 코드를 확인하고, 그에 따라 에러를 처리할 수 있습니다.

쉘 스크립트에서는 이처럼 set -e 옵션과 조건문을 사용하여 에러 처리를 할 수 있습니다. 이를 통해 스크립트가 안정적으로 실행될 수 있도록 보장할 수 있습니다.

참고 문헌