Bash 스크립트를 작성하다 보면, 명령어 실행 시 전달한 인자를 스크립트 내부에서 활용하고 싶을 때가 있습니다.
이때 사용하는 것이 바로 Positional Parameters(위치 매개변수) 입니다.
위치 매개변수란?
Bash에서는 스크립트나 함수를 실행할 때 입력 인자(argument) 를 자동으로 특정 변수에 저장합니다.
이 변수들이 바로 $1, $2, $3, ${10} 등입니다.
$1 → 첫 번째 인자
$2 → 두 번째 인자
$3 → 세 번째 인자
${10} → 열 번째 인자
예를 들어, 아래처럼 실행했다면:
./test.sh apple banana cherry
test.sh 내부에서
echo $1 # apple
echo $2 # banana
echo $3 # cherry
함수에서도 동일하게 사용 가능
위치 매개변수는 스크립트 전체뿐 아니라 함수 내부에서도 똑같이 사용할 수 있습니다.
function greet() {
echo "Hello, $1!"
}
greet "Linux"
# 출력: Hello, Linux!
shift 명령어로 매개변수 이동하기
Bash에는 인자들을 왼쪽으로 한 칸씩 이동시키는 명령어인 shift가 있습니다.
즉, shift를 한 번 실행하면 $2가 $1로, $3이 $2로 이동합니다.
예제: 모든 인자 출력하기
아래는 shift를 이용해서 전달받은 모든 인자를 출력하는 간단한 예시입니다.
#!/bin/bash
while [ "$#" -gt 0 ]
do
echo "argument $1"
shift
done
코드 해석
- $# : 현재 남아있는 인자의 개수
- "$#" -gt 0 : 인자가 남아 있을 동안 반복
- echo "argument $1" : 첫 번째 인자를 출력
- shift : 다음 인자를 앞으로 당김 (즉, $2 → $1)
실행 예시
./script.sh a b c
출력 결과:
argument a
argument b
argument c
정리하면
Positional Parameter는 스크립트나 함수의 입력값을 동적으로 처리할 때 매우 유용합니다.
특히 shift를 활용하면 인자를 순차적으로 탐색하거나 처리할 수 있어,
복잡한 CLI 유틸리티나 자동화 스크립트를 만들 때 자주 쓰이죠.
'개발 환경 및 프로젝트 관리 > Linux 개념' 카테고리의 다른 글
| Bash — Indexed Array 기본 정리 (0) | 2025.10.09 |
|---|---|
| Bash의 Special Parameters 정리 (0) | 2025.10.09 |
| Bash 환경 변수(Environment Variable) 정리 (0) | 2025.10.09 |
| Bash에서의 함수 선언과 사용 (0) | 2025.10.09 |
| Bash 반복문 — while과 until의 차이 (0) | 2025.10.08 |