Linux의 터미널에서 Bash Shell script를 실행 시킬 때, Command Line으로 전달된 인자를 받는 방법을 소개합니다.
터미널에서 아래와 같이 인자 없이 스크립트만 실행할 수 있지만,
$ sh script.sh
스크립트를 실행하면서 다양한 인자들을 전달할 수 있습니다.
$ sh script.sh 111 222 333
스크립트로 전달된 인자들을 읽는 방법에 대해서 알아보겠습니다.
1. Command Line으로 전달된 인자 받기
인자가 전달되면 스크립트 내부에서는 $1
, $2
처럼, $n
형태로 인자를 읽을 수 있습니다. n은 인자가 입력되는 순서를 의미합니다.
그리고 $#
는 전달된 인자의 개수입니다.
#!/bin/bash
echo "1st param = $1"
echo "2nd param = $2"
echo "3rd param = $3"
echo "The number of params = $#"
Output:
$ bash example.sh 111 222 333
1st param = 111
2nd param = 222
3rd param = 333
The number of params = 3
인자 없이 실행시키면 인자 개수는 0, 인자들은 null(empty)입니다.
$ bash example.sh
1st param =
2nd param =
3rd param =
The number of params = 0
2. 인자를 변수에 할당
다음과 같이 인자들을 다른 변수에 할당할 수 있습니다. 또한 인자들끼리 연산하여 다른 변수에 할당할 수도 있습니다.
#!/bin/bash
num1=$1
num2=$2
num3=$3
sum=$(($num1+$num2+$num3))
echo "num1 = $num1"
echo "num2 = $num2"
echo "num3 = $num3"
echo "sum = $sum"
Output:
$ bash example.sh 111 222 333
num1 = 111
num2 = 222
num3 = 333
sum = 666
3. For Loop를 이용하여 인자 읽기
스크립트가 실행될 때마다 전달되는 인자의 개수가 정해져있지 않다면, for loop로 유동적인 개수의 인자들을 모두 읽을 수 있습니다.
$@
는 전달되는 모든 인자가 포함된 문자열이며, 각각의 인자는 공백으로 구분되어있습니다.
다음과 같이 for loop를 이용하여 전달되는 모든 인자를 읽을 수 있습니다.
#!/bin/bash
echo "All params = $@"
echo "Loop all params!"
for i in $@
do
echo "$i"
done
Output:
$ bash example.sh 111 222 333
All params = 111 222 333
Loop all params!
111
222
333
4. 인자가 전달되었는지 확인 (1)
조건문을 이용하여 인자가 전달되었는지 확인할 수 있습니다.
[ -z $A ]
는 A 문자열의 길이가 0일 때 True를 리턴합니다.
다음과 같이 인자가 전달되었는지 확인할 수 있습니다.
#!/bin/bash
if [ -z $1 ]
then
echo "No parameter passed"
else
echo "Parameter passed = $1"
fi
Output:
$ sh ex_arg4.sh 111
Parameter passed = 111
$ sh ex_arg4.sh
No parameter passed
4. 인자가 전달되었는지 확인 (2)
[ -n "$A" ]
는 A 문자열의 길이가 0일 때 False를 리턴합니다. -z
와 반대되는 값을 리턴합니다.
다음과 같이 인자가 전달되었는지 확인할 수 있습니다.
if [ -n "$1" ]
then
echo "Parameter passed = $1"
else
echo "No parameter passed"
fi
Output:
$ bash example.sh 111
Parameter passed = 111
$ bash example.sh
No parameter passed
References
Related Posts
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 사용 방법
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)