조건문 작성 시
1.
[ <공백> <내용><공백>]
ex) [ -z "$VAR" ] [ , ] 은 내용과 공백으로 떨어져 있어야 한다.
2.
변수는 반드시 " " 로 감싼다.
ex) [ -z "$VAR" ]
3.
변수형에 맞는 연산자를 사용한다.
문자열 비교
| 연산자 | 예시 | 의미 |
| -z | if [ -z "$VAR" ] | $VAR 변수에 값이 없는 경우 true |
| -n | if [ -s "$VAR" ] | $VAR 변수에 값 있는 경우 true |
| = | if [ "$VAR1" = "$VAR2" ] | VAR1 VAR2 변수가 같은 경우 true |
| != | if [ "$VAR1" != "$VAR2" ] | VAR1 VAR2 변수가 다른 경우 true |
정수 비교
| 연산자 | 예시 | 의미 |
| -eq | if [ "$VAR1" -eq "$VAR2" ] if [ "$VAR1" -eq 10 ] |
VAR1이 VAR2과 같으면 true VAR1이 10이면 true |
| -ne | if [ "$VAR1" -nq "$VAR2" ] | VAR1이 VAR2과 같지 않으면 true |
| -le | if [ "$VAR1" -le "$VAR2" ] | VAR1이 VAR2 보다 작거나 같으면 true |
| -lt | if [ "$VAR1" -lt "$VAR2" ] | VAR1이 VAR2 보다 작으면 true |
| -ge | if [ "$VAR1" -ge "$VAR2" ] | VAR1이 VAR2 보다 크거나 같으면 true |
| -gt | if [ "$VAR1" -gt "$VAR2" ] | VAR1이 VAR2 보다 크면 true |
파일관련 비교
| 연산자 | 예시 | 의미 |
| -e | if [ -e "./test" ] | test가 존재하면 true |
| -f | if [ -f "./test" ] | test가 파일이면 true |
| -d | if [ -d "./test" ] | test가 디렉토리면 true |
| -s | if [ -s "./test" ] | test의 사이즈가 0이 아니면 true |
| -r | if [ -r FILE ] | FILE의 읽기 권한이 있으면 true |
| -w | if [ -w FILE ] | FILE의 쓰기 권한이 있으면 true |
| -x | if [ -x FILE ] | FILE의 실행 권한이 있으면 true |
| -L | if [ -L FILE ] | FILE이 심볼릭 링크면 true |
| -nt | if [ "test1" -nt "test2" ] | test1이 test2보다 최신이면 true |
| -ot | if [ "test1" -ot "test2" ] | test1이 test2보다 오래되었으면 true |
논리 연산
| 연산자 | 예시 | 의미 |
| && | if [ "$VAR1" = "A"] || [ "$VAR2" = "B" ] | VAR1이 A이고 VAR2가 B이면 true(and) |
| || | if [ "$VAR1" = "A"] || [ "$VAR1" = "B" ] | VAR1 이 A거나 B이면 true (or) |
| ! | if [ ! "$VAR" = "test" ] | VAR가 test가 아닐때 true (not) |
'Linux' 카테고리의 다른 글
| ulimit -a (0) | 2025.09.11 |
|---|---|
| 차단 IP 조회 쉘 스크립트 (1) | 2025.08.11 |
| /run,tmpfs, journalctl (0) | 2025.03.19 |
| 자바 버전 설정 alternatives (0) | 2025.03.11 |
| 서버 재부팅시 특정 사용자로 스크립트 실행 crontab (0) | 2025.02.19 |