스크립트 파일에는 매개변수 $n
을 넣고,
파일을 실행할 때 매개변수와 함께 실행하지 않는다면
syntax error
가 발생할 수 있습니다.
$ cat test1
#!/bin/bash
echo "1st parameter : $[ 1 + $1 ]"
$ ./test1
./test1: line 2: 1 + : syntax error: operand expected (error token is "+ ")
이와 같이 매개변수를 할당하지 않아 발생하는 에러
에 대한 예외처리
를 진행해야 합니다.
$ cat test1
#!/bin/bash
if [ -n "$1" ]
then
echo "1st parameter : $[ 1 + $1 ]"
else
echo "You didn't type parameters"
fi
$ ./test1
You didn't type parameters
$ ./test1 2
1st parameter : 3
코드 리뷰
-n
비교 구문은빈 문자열이 아니라면 참
입니다.- 그래서 매개변수가 숫자가 오든 문자가 오든 상관없이 문자열로 만들어주기 위해 매개변수를
큰따옴표
로 씌워줍니다.- 매개변수가 존재한다면
then
밑의 명령어를 실행합니다.- 매개변수가 비어있다면
else
구문 밑의 명령어를 실행하게 됩니다.
매개변수가 특정 개수가 아닐 때 특정 개수를 요구하도록 예외처리를 할 수도 있습니다.
$ cat test1
#!/bin/bash
if [ $# -ne 2 ]
then
echo "-------------------------"
echo "Usage: $0 param1 param2"
echo "-------------------------"
else
echo "-------------------------"
echo "parameter 1 : $1"
echo "parameter 2 : ${!#}"
fi
$ ./test1
-------------------------
Usage: ./test1 param1 param2
-------------------------
$ ./test1 1 2
-------------------------
parameter 1 : 1
parameter 2 : 2
$ ./test1 A B
-------------------------
parameter 1 : A
parameter 2 : B