오래 살아남고 안전한 셸 스크립트의 일반 원칙.
작은 스크립트라도 이 패턴들을 따라 두면 사고 예방.
Prelude.
#!/bin/bash + set -euo pipefail로 시작.
「실패 즉시 종료, 미정의 변수 에러, 파이프 중간 실패도 잡기」.
거의 모든 모던 스크립트의 첫 두 줄.
변수 인용.
"$var" 거의 항상 따옴표.
공백·특수 문자가 있어도 안전.
빠뜨리면 단어 분리·글로빙으로 사고.
예외는 「의도적인 단어 분리」가 필요할 때만.
임시 파일.
mktemp으로 충돌 없는 임시 파일.
trap으로 EXIT 시 자동 정리.
/tmp/myfile 같은 고정 이름은 충돌·심링크 공격 위험.
검증·헬퍼 함수.
1) 인자 개수 검증 — if [ $# -lt 2 ]; then echo "usage: ..." >&2; exit 1; fi.
2) 필수 명령 확인 — command -v jq >/dev/null || { echo "jq required" >&2; exit 1; }.
3) 사용법 함수 — usage() { ...
} + 잘못된 인자 시 호출.
작은 노력이 사고 방지에 큰 도움.
한 줄 요약
#!/bin/bash + set -euo pipefail prelude, "$var" 인용, mktemp + trap으로 임시 파일, 인자·명령 검증.
작은 노력이 큰 사고 방지.
ShellCheck로 정적 분석 추천.
더 알아볼 것
- ShellCheck — 셸 스크립트 린터
- Google Shell Style Guide
- Strict mode 변형들