피드로 돌아가기
Dev.toDevOps
원문 읽기
Shell Script 인자 처리 오류 방지를 위한 "$@" 기반의 데이터 무결성 확보
Understanding `$@`, `$*`, `"$@"`, and `"$*"` in Shell Scripts
AI 요약
Context
Shell Script에서 positional parameters를 처리할 때 발생하는 Word Splitting 문제 분석. 인자에 포함된 공백으로 인한 Argument 경계 파괴 및 데이터 유실 가능성 상존.
Technical Solution
- "$@"를 통한 개별 인자 캡슐화 및 원본 구조 보존 설계
- Parameter Expansion과 Quote Removal의 특수 동작을 활용한 데이터 무결성 유지
- "$*"의 단일 문자열 결합 방식을 통한 Logging 전용 처리 구조 분리
- Unquoted $@ 및 $* 사용 시 발생하는 Word Splitting 프로세스 제거
- IFS(Internal Field Separator) 영향도를 최소화하는 Quote Wrapping 적용
- 반복문 내에서 각 인자를 독립된 토큰으로 처리하는 "$@" 기반의 Iteration 패턴 구축
실천 포인트
- 인자 전달 및 반복문 처리 시 반드시 "$@" 형태의 Quote 사용 여부 확인 - 로그 출력이나 단순 디스플레이 목적일 때만 "$*" 채택 검토 - Unquoted $@/ $* 사용으로 인한 Word Splitting 발생 가능성 사전 차단 - 공백이 포함된 파일 경로 처리 시 "$@" 적용을 통한 런타임 에러 방지