본문 바로가기

리눅스

[draft] Shell 스크립트 if 조건문

728x90

Shell 스크립트 if 조건문

기본 구문(if 문법)

if [ condition ]
then
  # code to execute if condition is true
fi

if - else 문법

if [ condition ]
then
  # code to execute if condition is true
else
  # code to execute if condition is false
fi

if - elif - else 문법

if [ condition1 ]
then
  # code to execute if condition1 is true
elif [ condition2 ]
then
  # code to execute if condition2 is true
else
  # code to execute if both conditions are false
fi

활용 예제

#!/bin/bash

a=10
b=20

if [ $a = 10 ] && [ $b = 20 ]
then
    echo "a is 10 and b is 20"
fi
$ bash example.sh
a is 10 and b is 20
#!/bin/bash

a=10
b=20

if ! [ $a = $b ]
then
    echo "a is not equal to b"
else
    echo "a is equal to b"
fi
$ bash example.sh
a is not equal to b
#!/bin/bash

a=10
b=20

if [ $a = $b ]
then
    echo "a is equal to b"
elif [ $a -lt $b ]
then
    echo "a is less than b"
else
    echo "a is not equal to b"
fi
$ bash example.sh
a is less than b

숫자 비교

#!/bin/bash

num=10

if [ $num -gt 5 ]
then
  echo "Number is greater than 5"
else
  echo "Number is 5 or less"
fi

문자열 비교

#!/bin/bash

str="hello"

if [ "$str" = "hello" ]
then
  echo "String matches 'hello'"
else
  echo "String does not match 'hello'"
fi

파일 존재 여부 확인

#!/bin/bash

file="/path/to/file"

if [ -e "$file" ]
then
  echo "File exists"
else
  echo "File does not exist"
fi

비교 연산자

  • 숫자 비교
    • -eq : 같음
    • -ne : 같지 않음
    • -lt : 작음
    • -le : 작거나 같음
    • -gt : 큼
    • -ge : 크거나 같음
  • 문자열 비교
    • = : 같음
    • != : 같지 않음
    • -z : 문자열이 비어 있음
    • -n : 문자열이 비어 있지 않음
  • 파일 비교
    • -e : 파일이 존재함
    • -f:  파일이 일반 파일임
    • -d : 파일이 디렉터리임
    • -r : 파일이 읽기 가능함
    • -w : 파일이 쓰기 가능함
    • -x:  파일이 실행 가능함

예제 스크립트

여러 조건 검사

#!/bin/bash

num=10
file="/path/to/file"
str="hello"

if [ $num -gt 5 ]
then
  echo "Number is greater than 5"
elif [ -e "$file" ]
then
  echo "File exists"
elif [ "$str" = "hello" ]
then
  echo "String matches 'hello'"
else
  echo "No condition met"
fi

복잡한 조건 검사

#!/bin/bash

num=10
file="/path/to/file"

if [ $num -gt 5 ] && [ -e "$file" ]
then
  echo "Number is greater than 5 and file exists"
else
  echo "Either number is 5 or less, or file does not exist"
fi

for 문과 if 문 결합

#!/bin/bash

for i in {1..10}
do
  if [ $((i % 2)) -eq 0 ]
  then
    echo "$i is even"
  else
    echo "$i is odd"
  fi
done

 

참고URL

- Bash Shell - 조건문(if-else) : https://codechacha.com/ko/shell-script-if-else/

 

728x90