처리를 하다 보면 조건에 따라 처리를 다르게 하고 싶은 경우가 있습니다.
쉘 스크립트에서도 if문을 사용해 조건식을 지정할 수 있습니다.
if문 기본 사용방법은 아래와 같습니다.
if(20세 이상일 경우)
성년입니다.
else //20세 이상이 아닐 경우
미성년입니다.
fi
if 뒤에 조건식을 작성합니다.
else는 if문에 해당하지 않는 조건일 경우에 실행을 하게 됩니다.
fi는 if문의 종료를 의미합니다.
if 문 사용법
쉘 스크립트 내에서 if문을 어떻게 사용하는지 알아보겠습니다.
먼저 조건이 하나일 경우에 사용하는 방법입니다.
if [ 조건1 ]; then
처리1
fi
조건1에 값이 만족하는 경우에 처리1을 실행하게 됩니다.
만약 조건1에 만족하지 않는 경우에는 처리1을 실행하지 않습니다.
조건1에 만족하지 않는 경우 다른 처리를 하고 싶은 경우 else를 사용합니다.
if [ 조건1 ]; then
처리1
else
처리2
fi
조건1에 만족하는 경우에는 처리1을 만족하지 않는 경우에는 처리2를 실행합니다.
조건을 여러 개 작성하고 싶은 경우에는 elif를 사용해 조건식을 늘릴 수 있습니다.
if [ 조건1 ]; then
처리1
elif [ 조건2 ]; then
처리2
else
처리3
fi
샘플을 만들어 확인해보겠습니다.
#!/bin/sh
num=10
if [ "${num}" -eq 2 ]; then
echo "num is 2"
elif [ "${num}" -eq 3 ]; then
echo "num is 3"
else
echo "num is not 2 or 3"
fi
if 조건식에는 비교 연산자를 사용해 값을 비교할 수 있습니다.
비교 연산자 | 의미 | 비교 연산자 | 의미 |
---|---|---|---|
-eq | 같음 | < | 이중 소괄호에서, 더 작음 |
-ne | 같지 않음 | <= | 이중 소괄호에서, 작거나 같음 |
-gt | 더 큼 | > | 이중 소괄호에서, 더 큼 |
-ge | 크거나 같음 | >= | 이중 소괄호에서, 크거나 같음 |
-lt | 더 작음 | ==, = | 문자열 비교, 같음 |
-le | 더 작거나 같음 | != | 문자열 비교, 같지 않음 |
-z | 문자열이 null인가 | -a | 논리 and |
-n | 문자열이 null이 아님 | -o | 논리 or |
다른 프로그래밍 언어에서도 마찬가지이지만 쉘 스크립트에서도 if 문은 상당히 중요합니다.
조건식을 사용방법을 알고 있으면 더욱더 많은 처리를 응용해 사용할 수 있기 때문입니다.
여러 조건을 넣어 보면서 사용해보면 금세 익힐 수 있습니다.
댓글