조건문 작성 시

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

+ Recent posts