if문에서 두개의 문자열이 같은지, 다른지 비교하는 방법에 대해서 알아보겠습니다.

이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다.

1. == 를 이용한 방법

if문에서 == 연산자를 이용하여 두개의 문자열이 같은지 비교할 수 있습니다.

  • "$str1" == "$str2" : str1과 str2가 같으면 true
#!/bin/bash

str1="Hello"
str2="World"

if [ "$str1" == "$str2" ]; then
    echo "두 문자열은 같습니다."
else
    echo "두 문자열은 다릅니다."
fi

Output:

$ bash example.sh
두 문자열은 다릅니다.

2. != 를 이용한 방법

if문에서 != 연산자를 이용하여 두개의 문자열이 다른지 비교할 수 있습니다. ==와 반대이며, 가독성에 따라서 두개를 교차하여 사용할 수 있습니다.

  • "$str1" != "$str2" : str1과 str2가 다르면 true, 같으면 false
#!/bin/bash

str1="Hello"
str2="World"

if [ "$str1" != "$str2" ]; then
    echo "두 문자열은 다릅니다."
else
    echo "두 문자열은 같습니다."
fi

Output:

$ bash example.sh
두 문자열은 다릅니다.

3. < 으로 문자열 크기 비교

두개의 문자열이 다를 때, 문자열 간의 크기를 비교할 수 있습니다. 문자열 크기 비교는 문자열들을 알파벳 순서로 정렬할 때 사용될 수 있습니다.

알파벳 문자의 경우, 첫번째 문자부터 비교하며, 알파벳 순서가 빠른 것이 크기가 작습니다. 즉, 사전에서 해당 문자를 찾았을 때 더 앞쪽에 보이게 됩니다. 문자열을 알파벳으로 정렬했을 때 더 앞 쪽에 위치한다고 보시면 됩니다.

  • if [ "$str1" \< "$str2" ]; then : str1의 a가 str2의 b보다 알파벳 순서가 앞에 있기 때문에, str1이 더 작으며, 따라서 str1 < str2는 true 리턴
#!/bin/bash

str1="apple"
str2="banana"

if [ "$str1" \< "$str2" ]; then
    echo "$str1 가 사전 순서에서 $str2 보다 앞에 있습니다."
else
    echo "$str2 가 사전 순서에서 $str1 보다 앞에 있습니다."
fi

Output:

$ bash example.sh
apple 가 사전 순서에서 banana 보다 앞에 있습니다.