본문으로 건너뛰기
Linux · CLI 기초집LESSON 19

쉘 스크립트 기초와 반복 작업 자동화

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

19강. 쉘 스크립트 기초와 반복 작업 자동화

1. 이번 강의에서 해결할 문제

터미널에서 성공한 긴 명령을 매번 복사하면 순서와 경로가 달라집니다. 실패 시 멈추고 입력을 검증하는 작은 스크립트로 고정합니다.

2. 학습 목표

3. 핵심 개념

쉘 스크립트는 명령 순서를 파일로 보존합니다. shebang은 어떤 인터프리터로 실행할지 지정하고, set -euo pipefail은 실패·미정의 변수·파이프 중간 실패를 놓치지 않게 돕습니다. 스크립트는 자신의 위치를 기준으로 프로젝트 루트를 계산하면 어느 현재 디렉터리에서도 같은 파일을 대상으로 합니다.

GNU Bash Reference Manual의 매개변수 확장과 종료 상태 규칙을 따릅니다.

4. 단계별 명령어와 예시

1. Ubuntu Bash(WSL)

실행 위치: 프로젝트 루트

대상: scripts/run-analysis.sh

Ubuntu Bash(WSL)
cd "$HOME/projects/game-log-analyzer"
cat > scripts/run-analysis.sh <<'BASH'
#!/usr/bin/env bash
set -euo pipefail

project_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
input_path="${1:-$project_dir/data/battles.csv}"
output_path="${2:-$project_dir/reports/summary.json}"

if [[ ! -f "$input_path" ]]; then
printf '입력 파일 없음: %s\n' "$input_path" >&2
exit 2
fi

"$project_dir/.venv/bin/python" "$project_dir/analyzer.py" \
--input "$input_path" --output "$output_path"
printf '완료: %s\n' "$output_path"
BASH
chmod u+x scripts/run-analysis.sh
bash -n scripts/run-analysis.sh
sed -n '1,24p' scripts/run-analysis.sh

예상 결과: 스크립트가 생성되고 문법 검사 통과 후 앞부분이 표시됩니다.

5. 명령어가 동작하는 이유

BASH_SOURCE[0]은 스크립트 파일 위치를 알려 주고 dirnamepwd가 절대 프로젝트 경로를 만듭니다. ${1:-기본값}은 인수가 비거나 없을 때 안전한 기본 경로를 사용합니다. 모든 경로를 큰따옴표로 감싸 공백 분리를 막습니다.

6. 자주 하는 실수와 안전한 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

쉘 스크립트 기초와 반복 작업 자동화 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“쉘 스크립트 기초와 반복 작업 자동화”의 위험한 선택을 피하려면 어떤 원칙을 적용해야 하나요?
  2. 문제 2“쉘 스크립트 기초와 반복 작업 자동화”에서 ‘실패해도 다음 명령 계속 실행’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

19강. 쉘 스크립트 기초와 반복 작업 자동화 미완료 상태