본문 바로가기

언어/Bash

[ Bash ] if - 분기문 사용하기

반응형

Bash 스크립트에서 if 문은 조건을 평가하고 그 결과에 따라 특정 코드를 실행하는 데 사용됩니다. Bash의 if 문은 조건식과 함께 사용하며, 다양한 비교 연산자를 지원합니다.


기본 구조

if [ 조건식 ]; then
    # 조건식이 참일 때 실행
elif [ 다른 조건식 ]; then
    # 위 조건이 거짓이고, 이 조건이 참일 때 실행
else
    # 모든 조건이 거짓일 때 실행
fi

 

예제

 

1. 숫자 비교

#!/bin/bash

num=10

if [ $num -eq 10 ]; then
    echo "숫자는 10입니다."
elif [ $num -lt 10 ]; then
    echo "숫자는 10보다 작습니다."
else
    echo "숫자는 10보다 큽니다."
fi

비교 연산자:

  • -eq : 두 값이 같으면 참
  • -ne : 두 값이 다르면 참
  • -lt : 왼쪽 값이 오른쪽 값보다 작으면 참
  • -le : 왼쪽 값이 오른쪽 값보다 작거나 같으면 참
  • -gt : 왼쪽 값이 오른쪽 값보다 크면 참
  • -ge : 왼쪽 값이 오른쪽 값보다 크거나 같으면 참

 

2. 문자열 비교

#!/bin/bash

str="hello"

if [ "$str" = "hello" ]; then
    echo "문자열이 hello입니다."
elif [ "$str" != "hello" ]; then
    echo "문자열이 hello가 아닙니다."
fi

문자열 비교 연산자:

  • = : 두 문자열이 같으면 참
  • != : 두 문자열이 다르면 참
  • -z : 문자열이 비어 있으면 참
  • -n : 문자열이 비어 있지 않으면 참

 

3. 파일 조건

#!/bin/bash

file="example.txt"

if [ -e "$file" ]; then
    echo "파일이 존재합니다."
else
    echo "파일이 존재하지 않습니다."
fi

파일 관련 연산자:

  • -e : 파일이 존재하면 참
  • -f : 일반 파일이면 참
  • -d : 디렉토리이면 참
  • -r : 파일이 읽기 가능하면 참
  • -w : 파일이 쓰기 가능하면 참
  • -x : 파일이 실행 가능하면 참

 

4. 논리 연산자

#!/bin/bash

num=15

if [ $num -gt 10 ] && [ $num -lt 20 ]; then
    echo "숫자는 10보다 크고 20보다 작습니다."
fi

논리 연산자:

  • && : 논리 AND (모두 참이면 참)
  • || : 논리 OR (하나라도 참이면 참)

 

5. 중첩 if문

#!/bin/bash

num=10

if [ $num -gt 5 ]; then
    if [ $num -lt 15 ]; then
        echo "숫자는 5보다 크고 15보다 작습니다."
    fi
fi

Tips

  1. 조건식 괄호
    • [ 조건식 ] : 표준 POSIX 테스트 명령.
    • [[ 조건식 ]] : Bash 고유의 확장된 조건식 (권장).
      • 문자열 비교 시 이스케이프가 필요 없고 더 안전함.
      • 논리 연산자를 자연스럽게 사용할 수 있음.
  2. 조건식 내부의 변수
    • 변수를 사용할 때는 항상 "로 감싸는 것이 좋음.
     if [ "$var" = "value" ]; then
         echo "변수가 value와 같습니다."
     fi
  1. 실행 권한
    • 스크립트를 실행하기 전에 실행 권한을 추가해야 합니다.
     chmod +x script.sh
     ./script.sh

위 내용을 활용하면 Bash에서 다양한 조건과 함께 if 문을 사용할 수 있습니다!

반응형