[shell script] if문에서 문자열 비교 조건문

HYEOB KIM·2022년 4월 13일
0

Shell

목록 보기
10/71

쉘 스크립트에서 두 문자열을 비교하는 방법입니다.

비교 방법

(s1, s2는 문자열)

비교 방법설명
s1 = s2s1과 s2가 같은지
s1 != s2s1과 s2가 같지 않은지
s1 \< s2s1이 s2보다 작은지(부등호 앞에 \를 꼭 붙여준다)
s1 \> s2s1이 s2보다 큰지(부등호 앞에 \를 꼭 붙여준다)
-n s1s1의 길이가 0보다 큰지
-z s1s1의 길이가 0인지

유의할 점은 두 문자열이 큰지 작은지를 비교할 때 그냥 < 또는 >로 쓰면 리다이렉트로 인식합니다.

그래서 반드시 \를 붙여줍니다.

if문에서 사용하기

$ cat test1
#!/bin/bash
if [ $USER = "hyeob" ]
then
        echo "Hello $USER"
fi

$ ./test1
Hello hyeob

-n s1 활용 방법

$ cat test1
#!/bin/bash
if [ -n "hyeob" ]
then
        echo "True"
else
        echo "False"
fi

$ ./test1
True

-z s1 활용 방법

$ cat test1
#!/bin/bash
if [ -z "" ]
then
        echo "True"
else
        echo "False"
fi

$ ./test1
True

한편, 조건에 단순히 문자열만 쓰게 되면,
문자열이 존재할 경우 True,
문자열이 존재하지 않을 경우(null) False

$ cat test1
#!/bin/bash
if [ "" ]
then
        echo "True"
else
        echo "False"
fi

$ ./test1
False
profile
Devops Engineer

0개의 댓글