쉘스크립트에서 사용하는 비교연산자 정리
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 ] |
