18일차: 리눅스 스크립트 디버깅과 오류 처리 이해하기







스크립트 디버깅 – 오류 처리 이해

스크립트 디버깅 – 오류 처리 이해

안녕하세요! 저는 mj입니다. 오늘은 리눅스 스크립트에서 오류를 처리하는 방법에 대해 알아보겠습니다. 스크립트의 안정성을 높이기 위해 오류 처리는 필수적입니다. 이 포스팅에서는 오류 처리의 기본 개념과 다양한 방법을 실습을 통해 소개하겠습니다.

1. 오류 처리의 중요성

스크립트가 실행되는 동안 발생할 수 있는 오류는 여러 가지가 있습니다. 파일이 존재하지 않거나, 잘못된 입력이 들어오는 경우 등이 그것입니다. 오류 처리를 통해 이러한 문제를 미리 방지하고, 프로그램이 중단되지 않도록 할 수 있습니다.

2. 오류 처리 방법

리눅스 스크립트에서 오류를 처리하는 방법에는 여러 가지가 있습니다. 가장 일반적인 방법은 if 문과 exit 명령을 사용하는 것입니다. 아래는 기본적인 오류 처리 예제입니다.

예제 1: 파일 존재 여부 확인

#!/bin/bash

FILE="example.txt"

if [ -f "$FILE" ]; then
    echo "$FILE 파일이 존재합니다."
else
    echo "$FILE 파일이 존재하지 않습니다."
    exit 1
fi

위 스크립트를 실행하면, example.txt 파일이 존재하는 경우와 존재하지 않는 경우를 확인할 수 있습니다. 출력 결과는 다음과 같습니다:

./script.sh
example.txt 파일이 존재하지 않습니다.

예제 2: 함수와 오류 처리

함수를 사용하여 오류를 처리할 수도 있습니다. 아래는 함수 내에서 오류를 처리하는 예제입니다.

#!/bin/bash

check_file() {
    if [ -f "$1" ]; then
        echo "$1 파일이 존재합니다."
    else
        echo "$1 파일이 존재하지 않습니다."
        return 1
    fi
}

check_file "example.txt"
if [ $? -ne 0 ]; then
    echo "오류 발생: 파일 체크 실패."
    exit 1
fi

이 스크립트를 실행하면, 파일 체크 함수의 결과에 따라 오류 메시지를 출력합니다. 출력 예시는 다음과 같습니다:

./script.sh
example.txt 파일이 존재하지 않습니다.
오류 발생: 파일 체크 실패.

3. 오류 로그 기록하기

오류가 발생할 경우 이를 로그 파일에 기록하는 것도 좋은 방법입니다. 아래는 오류를 로그 파일에 기록하는 예제입니다.

#!/bin/bash

LOGFILE="error.log"

check_file() {
    if [ -f "$1" ]; then
        echo "$1 파일이 존재합니다."
    else
        echo "$1 파일이 존재하지 않습니다." >> "$LOGFILE"
        return 1
    fi
}

check_file "example.txt"
if [ $? -ne 0 ]; then
    echo "오류 발생: 파일 체크 실패."
    exit 1
fi

이 스크립트를 실행하면, 오류가 발생할 경우 error.log 파일에 기록됩니다. 로그 파일의 내용은 다음과 같이 확인할 수 있습니다:

cat error.log
example.txt 파일이 존재하지 않습니다.

4. 종합 실습 예제

이제 모든 내용을 종합하여, 사용자 입력을 받아 파일을 체크하고 오류를 처리하는 스크립트를 작성해보겠습니다.

#!/bin/bash

LOGFILE="error.log"
touch "$LOGFILE"  # 로그 파일 생성

read -p "확인할 파일 이름을 입력하세요: " FILENAME

if [ -z "$FILENAME" ]; then
    echo "파일 이름을 입력하지 않았습니다."
    exit 1
fi

check_file() {
    if [ -f "$1" ]; then
        echo "$1 파일이 존재합니다."
    else
        echo "$1 파일이 존재하지 않습니다." >> "$LOGFILE"
        return 1
    fi
}

check_file "$FILENAME"
if [ $? -ne 0 ]; then
    echo "오류 발생: 파일 체크 실패."
    echo "자세한 내용은 $LOGFILE 파일을 확인하세요."
    exit 1
fi

이 스크립트를 실행하면, 사용자가 입력한 파일 이름을 체크하고, 오류가 발생할 경우 로그 파일에 기록됩니다. 출력 예시는 다음과 같습니다:

./script.sh
확인할 파일 이름을 입력하세요: example.txt
example.txt 파일이 존재하지 않습니다.
오류 발생: 파일 체크 실패.
자세한 내용은 error.log 파일을 확인하세요.

5. 결론

오늘은 리눅스 스크립트에서 오류를 처리하는 방법에 대해 알아보았습니다. 다양한 오류 처리 기법을 통해 스크립트의 안정성을 높일 수 있습니다. 실습을 통해 직접 경험해보세요!

감사합니다! 다음 포스팅에서 또 만나요!


Leave a Comment