Linux,Unix,BSD

쉘 스크립트 명령줄 처리

채윤아빠 2019. 6. 4. 09:55
728x90
반응형




쉘 스크립트를 작성하다 보면, 위부에서 파라미터를 받아서 스크립트 내부에서 처리해야할 일이 많습니다. 명령줄에서 받은 파라미터를 어떻게 처리하는지 알아 보겠습니다. 명령줄에서 받은 파라미터들은 쉘 스크립트 내부에서 아래와 같이 사용할 수 있습니다.

$@ : 파라미터 전체
$# : 파라미터 개수
$0 : 명령줄 실행 스크립트 명령
$1 : 첫 번째 파라미터
$2 : 두 번째 파라미터
...

예제 : ./test.sh param1 param2 "param 3" "param 4"

공백이 있는 파라미터의 경우에는 따옴표(")로 묶어 주어야만 합니다.

$ vi test.sh

echo "명령줄 : $0 $@" 
echo "\$# : 파라미터 개수 => $#" 
echo "\$0 : 명령줄 실행 스크립트 명령 => $0" 
echo "\$@ : 파라미터 전체 => $@" 
echo "\$1 : 첫 번째 파라미터 => $1" 
echo "\$2 : 두 번째 파라미터 => $2" 
echo "\$3 : 두 번째 파라미터 => $3" 
echo "\$4 : 두 번째 파라미터 => $4" 

echo로 "$" 문자를 출력하기 위해서는 "\" 문자를 앞에 붙여 주어야 합니다.(이스케이핑)

실행결과는 다음과 같습니다.

$ chmod +x test.sh
$ ./test.sh param1 param2 "param 3" "param 4" 

명령줄 : ./test.sh param1 param2 param 3 param 4
$# : 파라미터 개수 => 4
$0 : 명령줄 실행 스크립트 명령 => ./t.sh
$@ : 파라미터 전체 => param1 param2 param 3 param 4
$1 : 첫 번째 파라미터 => param1
$2 : 두 번째 파라미터 => param2
$3 : 두 번째 파라미터 => param 3
$4 : 두 번째 파라미터 => param 4