쉘스크립트에서 사용하는 비교연산자 정리
Linux/Shell Programming 2021. 1. 4. 22:23
비교 연산자
정수 비교
연산자 | 의미 | 표현 |
-eq | 같음 | if [ $a -eq $b ] |
-ne | 같지 않음 | if [ $a -ne $b ] |
-gt | 보다 큼 | if [ $a -qt $b ] |
-ge | 크거나 같음 | if [ $a -ge $b ] |
-lt | 보다 작음 | if [ $a -lt $b ] |
-le | 작거나 같음 | if [ $a -le $b ] |
> | 보다 큼 | (($a > $b)) |
>= | 크거나 같음 | (($a >= $b)) |
< | 보다 작음 | (($a < $b)) |
<= | 작거나 같음 | (($a <= $b)) |
문자열 비교
연산자 | 의미 | 표현 |
= | 같음 | if [ "$a" = "$b" ] |
== | 같음 | if [ "$a" == "$b" ] |
!= | 같지않음 | if [ "$a" != "$b" ] |
-z | 문자열이 null, 길이가 0 | if [ -z "$a" ] |
! -z | 문자열이 null이 아님 | if [ ! -z "$a" ] |
-n | 문자열이 null이 아님 | if [ -n "$a" ] |
> | ASCII 값이 보다 큼 | if [[ "$a" > "$b" ]] if [ "$a" \> "$b" ] |
< | ASCII 값이 보다 작음 | if [[ "$a" < "$b" ]] if [ "$a" \< "$b" ] |
참고
[[ "$a" == a* ]] -> $a가 "a"로 시작하면 참
[[ "$a" == "a*" ]] -> $a가 "a*" 와 같다면 참
[ "$a" == a* ] -> 잘못된 표현
[ "$a" == "a*" ] -> $a가 "a*"와 같다면 참
복합비교
연산자 | 의미 | 표현 |
-a | 논리 and | if [ $a -qa 0 -a $b -eq 1 ] |
-o | 논리 or | if [ $a -qa 0 -o $b -eq 1 ] |
&& | 논리 and | if [ $a -eq 0 ] && [ $b -eq 1 ] if [[ $a -eq 0 && $b -eq 1]] |
|| | 논리 or | if [ $a -eq 0 ] || [ $b -eq 1 ] if [[ $a -eq 0 || $b -eq 1 ]] |
파일 비교
연산자 | 의미 | 표현 |
-d | Directory | if [ -d FILE ] |
-f | File | if [ -f FILE ] |
-e | Exist | if [ -e FILE ] |
-r | Readable | if [ -r FILE ] |
-w | Writable | if [ -w FILE ] |
-x | Execuable | if [ -x FILE ] |
-s | if [ -s FILE ] | |
-O | Same Owner | if [ -O FILE ] |
-G | Same Group | if [ -G FILE ] |
-nt | Newer Than | if [ FILE1 -nt FILE2 ] |
-ot | Older Than | if [ FILE1 -ot FILE2 ] |