개발 환경 및 프로젝트 관리/Linux 개념

Bash에서의 Positional Parameters (위치 매개변수)

Data Jun 2025. 10. 9. 13:41

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 유틸리티나 자동화 스크립트를 만들 때 자주 쓰이죠.