[리눅스] 셸 스크립트 테스팅과 디버깅

목차

셸 스크립트 테스팅

유닛 테스트

셸 스크립트의 각 함수를 개별적으로 테스트하는 것이 유닛 테스트의 중요한 부분입니다. assert문을 사용하여 함수의 출력을 검증하는 방법이 좋은 예시입니다.

#!/bin/bash

# 테스트할 함수
get_sum() {
  echo $(($1 + $2))
}

# 테스트
assert() {
  expected=$1
  shift
  result=$("$@")
  if [ "$expected" = "$result" ]; then
    echo "테스트 통과: 기대값 $expected과 결과값 $result가 일치합니다"
  else
    echo "테스트 실패: 기대값 $expected과 결과값 $result가 일치하지 않습니다"
  fi
}

assert 5 get_sum 2 3

통합 테스트

여러 스크립트 파일이 함께 작동하는지 확인하기 위해 통합 테스트를 수행하세요. 이를 통해 스크립트 간의 의존성 및 상호 작용을 테스트할 수 있습니다.

셸 스크립트 디버깅

에러 메시지 및 로그

특정 명령이 실패할 때, 셸 스크립트는 그 에러를 처리하고 해당 부분의 로그를 기록해야 합니다. 이를 통해 어떤 부분이 실패했는지 파악할 수 있습니다.

디버그 모드

셸 스크립트를 디버그 모드로 실행하면, 각 명령어가 실행될 때 디버깅 정보가 표시되어 어떻게 실행되는지 파악할 수 있습니다. 디버그 모드는 -x 옵션을 사용하여 활성화할 수 있습니다.

셸 스크립트 작성 시 테스트와 디버깅을 고려하여 안정적이고 신뢰할 수 있는 스크립트를 만들 수 있습니다.