개발 환경 및 프로젝트 관리/Linux 개념

Bash 스크립트에서 if문과 정수 비교

Data Jun 2025. 10. 8. 09:13

Bash 스크립트를 작성하다 보면 조건에 따라 명령을 다르게 실행해야 하는 경우가 많습니다.
이때 사용하는 것이 바로 if 문입니다.
이번 글에서는 if 문 기본 구조와 정수 비교 방법을 간단히 정리해보겠습니다.

 

if 문 기본 구조

Bash에서 if 문은 다음과 같은 형태로 작성합니다.

if test-commands; then
    ...
fi

또는 조건이 여러 개일 때는 elif와 else를 사용할 수 있습니다.

if test-commands; then
    ...
elif test-commands; then
    ...
else
    ...
fi

참고사항

  • elif와 else는 선택적으로 사용할 수 있습니다.
  • if 문은 중첩도 가능합니다.
  • 조건문(test-commands)은 여러 형태를 지원합니다:
    • [ ... ] : POSIX 표준 기본 형태
    • [[ ... ]] : bash 확장 기능
    • (( ... )) : bash 수식 계산용 확장 문법

주의:
[ ]를 사용할 때는 괄호 안의 공백이 반드시 필요합니다.
예를 들어 [ "$a" -eq "$b" ]는 올바른 구문이지만,
[ "$a"-eq"$b" ]처럼 공백이 없으면 **문법 오류(syntax error)**가 발생합니다.

 

 

정수 비교 (Integer Comparison)

Bash에서 정수끼리 비교할 때만 사용할 수 있는 연산자가 있습니다.
즉, 아래의 비교 연산자들은 숫자형(integer) 값 전용입니다.
문자열이나 소수(float)에는 사용할 수 없습니다.

연산자 의미
-eq equal to (같다)
-ne not equal to (같지 않다)
-gt greater than (크다)
-ge greater than or equal to (크거나 같다)
-lt less than (작다)
-le less than equal to (작거나 같다)

예를 들어 "07"이나 "abc" 같은 문자열을 비교할 때는 -eq, -gt 등을 쓰면 안 됩니다.
문자열 비교는 = 또는 !=를 사용해야 합니다.

 

예시 코드

num=10

if [ $num -gt 5 ]; then
    echo "num은 5보다 큽니다."
elif [ $num -eq 5 ]; then
    echo "num은 5와 같습니다."
else
    echo "num은 5보다 작습니다."
fi

 

 

정리하면

 

Bash의 if 문은 간단하지만,
elif, else, 그리고 다양한 비교 연산자를 활용하면 복잡한 조건 분기도 쉽게 처리할 수 있습니다.
특히 [[]]나 (( )) 같은 bash 확장 문법을 함께 쓰면 훨씬 강력한 조건식을 만들 수 있습니다.

 

✅ 체크

  • [ ] 사용 시 공백 필수!
  • -eq, -gt, -lt 등은 정수 비교 전용!