[Shell Script] if문에서 문자열 비교
March 01, 2024
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 보다 앞에 있습니다.