9. 비교 연산자(이진)
정수 비교 연산자는 다음과 같다.
연산자 | 사용법 | 설명 |
---|---|---|
-eq |
if [ "$a" -eq "$b" ] |
같음 |
-ne |
if [ "$a" -ne "$b" ] |
같지 않음 |
-gt |
if [ "$a" -gt "$b" ] |
큼 |
-ge |
if [ "$a" -ge "$b" ] |
크거나 같음 |
-lt |
if [ "$a" -lt "$b" ] |
작음 |
-le |
if [ "$a" -le "$b" ] |
작거나 같음 |
< |
if (( "$a" < "$b" )) |
작음 |
<= |
if (( "$a" <= "$b" )) |
작거나 같음 |
> |
if (( "$a" > "$b" )) |
큼 |
>= |
if (( "$a" >= "$b" )) |
크거나 같음 |
문자열 비교 연산자는 다음과 같다.
연산자 | 사용법 | 설명 |
---|---|---|
= |
if [["$a" = "$b"]] |
같음 |
== |
if [["$a" == "$b"]] |
같음 |
!= |
if [["$a" != "$b"]] |
같지 않음 |
< |
if [ "$a" \< "$b" ] , if [["$a" < "$b"]] |
작음(아스키 순서) |
> |
if [ "$a" \> "$b" ] , if [["$a" > "$b"]] |
큼(아스키 순서) |
-z |
if [ -z "$a" ] |
문자열의 길이가 0 임(NULL) |
-n |
if [ -n "$a" ] |
문자열이 NULL이 아님 |
복합 비교 연산자는 다음과 같다.
연산자 | 사용법 | 설명 |
---|---|---|
-a |
if [ "$exp1" -a "$exp2" ] |
논리 AND |
-o |
if [ "$exp1" -o "$exp2" ] |
논리 OR |
&& |
if [["$exp1" && "$exp2"]] |
논리 AND |
|| |
if [["$exp1" || "$exp2"]] |
논리 OR |
#!/bin/bash
# 이 시점에서는 "a"와 "b"는 정수나 문자열 양쪽 모두로 해석됨
a=4
b=5
# 휴먼 에러를 방지하고자 산술 비교는 문자형 연산자
if [ "$a" -ne "$b" ]; then
echo "$a 와 $b 는 같지 않습니다."
echo "(산술 비교)"
fi
# 4 와 5 는 같지 않습니다.
# (산술 비교)
# 휴먼 에러를 방지하고자 문자열 비교는 산술형 연산자
if [ "$a" != "$b" ]; then
echo "$a 는 $b 와 같지 않습니다."
echo "(문자열 비교)"
fi
# 4 는 5 와 같지 않습니다.
# (문자열 비교)
exit 0