[shell script] 매개변수 예외처리

HYEOB KIM·2022년 4월 21일
0

Shell

목록 보기
36/71

매개변수 예외처리

스크립트 파일에는 매개변수 $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
profile
Devops Engineer

0개의 댓글