[Shell Script] 커맨드라인으로 인자 전달 받기
February 24, 2024
쉘 스크립트를 커맨드 라인에서 실행할 때 인자를 전달할 수 있습니다.
터미널에서 어떻게 인자를 전달하고, 스크립트에서 어떻게 인자를 받는지 예제로 알아보겠습니다.
이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다.
1. 커맨드 라인에서 인자 전달
터미널에서 다음 명령어로 인자 없이 또는 인자와 함께 스크립트를 실행합니다.
$ bash example.sh
: 인자 없이 스크립트 실행$ bash example.sh arg1
: 스크립트 실행하며 인자 1개 전달$ bash example.sh arg1 arg2 arg3
: 스크립트 실행하며 인자 3개 전달
2. 스크립트에서 인자 받기
전달된 인자는 스크립트 안에서 $N
으로 받을 수 있습니다. N은 전달된 인자의 순서가 됩니다.
$1
: 첫번째로 전달된 인자 값$2
: 두번째로 전달된 인자 값$N
: N번째로 전달된 인자 값
#!/bin/bash
echo "첫 번째 인자: $1"
echo "두 번째 인자: $2"
echo "세 번째 인자: $3"
인자 3개를 전달하면서 스크립트를 실행하면 아래와 같이 출력됩니다.
$ bash example.sh arg1 arg2 arg3
첫 번째 인자: arg1
두 번째 인자: arg2
세 번째 인자: arg3
인자를 전달하지 않거나, 1개 또는 2개만 전달하면 아래와 같이 동작합니다. 전달되지 않은 인자는 빈 값(null)이 됩니다.
$ bash example.sh
첫 번째 인자:
두 번째 인자:
세 번째 인자:
$ bash example.sh arg1
첫 번째 인자: arg1
두 번째 인자:
세 번째 인자:
$ bash example.sh arg1 arg2
첫 번째 인자: arg1
두 번째 인자: arg2
세 번째 인자:
3. 전달받은 인자를 변수에 할당
아래와 같이 인자를 다른 변수에 할당한 뒤에 사용할 수도 있습니다.
#!/bin/bash
a1=$1
a2=$2
a3=$3
echo "a1: $a1"
echo "a2: $a2"
echo "a3: $a3"
Output:
$ bash example.sh arg1 arg2 arg3
a1: arg1
a2: arg2
a3: arg3