리눅스의 쉘스크립트에서 포지션 파라미터를 사용하는 방법에 대해서 알아보도록 하겠습니다.
이번에는 포지션(positioin parameter)에 대해서 알아보겠습니다.
포지션은 쉽게 설명하면, 스크립트 실행시에 실행하는 "옵션"이라고 보시면 됩니다.
커맨드를 입력할 때, command -option1 -option2 와 같은 커맨드를 입력하였다면,
$0에는 command
$1에는 -option1
$2에는 -option2
이렇게 값들이 저장되게 됩니다.
아래와 같이 간단한 스크립트를 생성하여 확인할 수 있습니다.
$ cat t_position
#!/bin/bash
echo "Positional Parameters"
echo '$0 = ' $0
echo '$1 = ' $1
echo '$2 = ' $2
echo '$3 = ' $3
아래처럼 옵션이 없이 실행하게 되면 $0에만 값이 저장되게 됩니다.
$ ./t_position
Positional Parameters
$0 = ./t_position
$1 =
$2 =
$3 =
아래와 같이 3개의 옵션을 적게 되면 $1~$3까지 포지션 파라메터가 생성됩니다.
$ ./t_position -a -b -help
Positional Parameters
$0 = ./t_position
$1 = -a
$2 = -b
$3 = -help
포지션 파라메터 중에 $#값에는 총 파라메터의 수가 입력되게 됩니다.
아래와 같이 echo '$# = ' $# 를 한줄 추가하여 확인해보았습니다.
$ cat t_position
#!/bin/bash
echo "Positional Parameters"
echo '$0 = ' $0
echo '$1 = ' $1
echo '$2 = ' $2
echo '$3 = ' $3
echo '$# = ' $#
$ ./t_position -a -b -help
Positional Parameters
$0 = ./t_position
$1 = -a
$2 = -b
$3 = -help
$# = 3
case를 활용하여 옵션이 사용되는 테스트용 스크립트를 한 번 생성해 보겠습니다.
$cat ./t_position
#!/bin/bash
usage(){
echo 'usage : t_position [[-a] | [-b] | [-c]]'
}
echo -n 'the process is running with '
case $1 in
"" ) echo 'no option'
;;
-a ) echo 'option -a'
;;
-b ) echo 'option -b'
;;
-c ) echo 'option -c'
;;
* ) usage
exit 1
esac
아래와 같이 주어진 option에 따라 다른 출력을 확인 할 수 있습니다.
$./t_position
the process is running with no option
$./t_position -a
the process is running with option -a
$./t_position -b
the process is running with option -b
$./t_position -c
the process is running with option -c
usage를 보려고 실행시켰더니 아래처럼 결과가 나오네요..7번째 줄에 있는 echo부분을 없애고, 각각의 case에 적어주면 해결이 될 듯 합니다.
$./t_position a
the process is running with usage : t_position [[-a] | [-b] | [-c]]
'IT 지식정리 > 운영체제' 카테고리의 다른 글
[Linux shell script 12] 리눅스 쉘스크립트에서 1>&2 의 의미 2015. 2. 17. (0) | 2017.11.04 |
---|---|
[Linux shell script 11] 리눅스 쉘스크립트: for 사용법 2015. 2. 13. (0) | 2017.11.04 |
[Linux shell script 9] 리눅스 쉘스크립트: case,while,until 사용법 2015. 2. 12. (0) | 2017.11.04 |
[Linux shell script 8] 리눅스 쉘스크립트: 키보드입력, read 2015. 2. 12. (0) | 2017.11.04 |
[Linux shell script 7] 리눅스 쉘스크립트 숫자연산 2015. 2. 12. (0) | 2017.11.04 |