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 등은 정수 비교 전용!
'개발 환경 및 프로젝트 관리 > Linux 개념' 카테고리의 다른 글
| Bash에서 파일 테스트 연산자 (File Test Operators) (0) | 2025.10.08 |
|---|---|
| Bash에서 문자열 비교 (String Comparison) (0) | 2025.10.08 |
| 리눅스 파일 권한 변경 명령어: chmod 정리 (0) | 2025.10.07 |
| 리눅스 쉘 변수 기본 정리 (0) | 2025.10.07 |
| 리눅스 명령어 실전 예제: 프롬프트 복구부터 메모리 확인까지 (0) | 2025.06.01 |