쉘 스크립트에서
두 문자열을 비교
하는 방법입니다.
(s1, s2는 문자열)
비교 방법 | 설명 |
---|---|
s1 = s2 | s1과 s2가 같은지 |
s1 != s2 | s1과 s2가 같지 않은지 |
s1 \< s2 | s1이 s2보다 작은지(부등호 앞에 \ 를 꼭 붙여준다) |
s1 \> s2 | s1이 s2보다 큰지(부등호 앞에 \ 를 꼭 붙여준다) |
-n s1 | s1의 길이가 0보다 큰지 |
-z s1 | s1의 길이가 0인지 |
유의할 점은 두 문자열이 큰지 작은지를 비교할 때 그냥 <
또는 >
로 쓰면 리다이렉트
로 인식합니다.
그래서 반드시 \
를 붙여줍니다.
$ 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