Bash Shell - 문자열 비교 연산자

Bash shell의 String 비교 연산자를 소개합니다.

다음 비교 연산자를 이용하여 조건문에서 문자열들을 비교할 수 있습니다.

String comparison Description Example
= is equal to if [ "$a" = "$b" ]
== is equal to if [ "$a" == "$b" ]
!= is not equal to if [ "$a" != "$b" ]
< is less than if [[ "$a" < "$b" ]] or if [ "$a" \< "$b" ]
> is greater than if [[ "$a" > "$b" ]] or if [ "$a" \> "$b" ]
-z string is null, empty if [ -z "$String" ]
-n string is not null if [ -n "$String" ]

Example 1

두개의 문자열들이 서로 같은지 비교하는 예제입니다.

#!/bin/bash

a="Hello"
b="Hello"

if [ "$a" == "$b" ]
then
    echo "a is equal to b"
fi

Output:

$ bash example.sh
a is equal to b

Example 2

다음은 2개 문자열들을 ASCII 순서로 크기를 비교하는 예제입니다.

#!/bin/bash

a="Hello"
b="Holly"

if [[ "$a" < "$b" ]]
then
    echo "a is less than b"
fi

Output:

$ bash example.sh
a is less than b

괄호 하나를 사용하는 방법

다음과 같이 괄호 하나를 사용하여 비교할 수도 있습니다. 대신 [ $a \< $b ]처럼 괄호 하나를 사용할 때는 비교 연산자 앞에 \를 함께 입력해야 합니다.

#!/bin/bash

a="Hello"
b="Holly"

if [ "$a" \< "$b" ]
then
    echo "a is less than b"
fi

Example 3

다음은 변수가 문자열을 갖고 있는지, 문자열이 Empty(null) 인지 확인하는 예제입니다.

#!/bin/bash

a=""

if [ -z "$a" ]
then
    echo "a is null(empty)"
fi


b="Hello"

if [ -n "$b" ]
then
    echo "b is not null(empty)"
fi

Output:

$ bash example.sh
a is null(empty)
b is not null(empty)
Loading script...
codechachaCopyright ©2019 codechacha