HOWTO · Linux

Bash에서 if...else 문을 사용하는 방법

Bash에서 if...else 문을 사용하여 특정 조건이 충족되는지 여부를 확인할 수 있습니다.

이 페이지의 내용

조건문은 거의 모든 프로그래밍 언어에서 의사 결정에 널리 사용됩니다. 특정 조건이 충족되는 경우에만 문을 실행할 수 있습니다. if ... else는 대부분의 프로그래밍 언어에서 조건문으로 사용됩니다. Bash에는if,if...elif...else,if ... else 및 중첩 된if 문이 조건문으로 있습니다.

Bashif

if 문의 구문

if Test-Expression
then
  Statements
fi

위의 예에서Test-ExpressionTrue이면Statements가 실행됩니다. fi 키워드는if 문을 종료하는 데 사용됩니다.

Test-ExpressionTrue가 아니면Statements가 실행되지 않습니다.

코드를 더 읽기 쉽고 체계적으로 보이게하기 위해4-space 또는2-space 들여 쓰기를 사용할 수 있습니다.

예 :Bashif

echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
fi

출력:

Enter numnber : 4
4 is even number

사용자로부터 숫자를 받아들이고 숫자가 짝수 인 경우에만 출력을 제공합니다.

숫자가 짝수이면 숫자를 2로 나눌 때 나머지는 0입니다. 따라서 test-expression은 True이므로 echo문이 실행됩니다.

Bashif ... else

if ... else 문의 구문

if Test-Expression
then
  Statements-1

else
  Statements-2
fi

이 예에서Test-ExpressionTrue이면Statements-1이 실행됩니다. 그렇지 않으면Statements-2가 실행됩니다. if ... else 문을 끝내기 위해fi 키워드가 사용됩니다.

예 :Bashif...else

echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
else
  echo "$n is odd number"
fi

출력:

Enter numnber : 5
4 is odd number

사용자로부터 숫자를 받아 입력 된 숫자가 정확히 2로 나눌 수 있는지 여부에 따라 출력을 제공합니다.

숫자가 짝수이면 숫자를 2로 나눌 때 나머지는 0입니다. 따라서 test-expression은True이고echo "$n is even number"문이 실행됩니다.

숫자가 홀수이면 나머지는 0이 아닙니다. 따라서 테스트 표현식은False이고echo "$n is odd number"문이 실행됩니다.

Bashif...elif...else

if...elif...else 문의 구문

if Test-Expression-1
then
  Statements-1
elif Test-Expression-2
then
  Statements-2

else
  Statements-3
fi

Test-Expression-1True이면Statements-1이 실행됩니다. 그렇지 않고Test-Expression-2True이면Statements-2가 실행됩니다.

테스트 표현식이 True가 아니면 Statements-3이 실행됩니다.

원하는만큼의elif 문을 가질 수 있으며else 문은 선택 사항입니다.

예: Bashif...elif...else

echo -n "Enter the value of a: "
read a

echo -n "Enter the value of b: "
read b

if [ $a -lt $b ]
then
   echo "a is less than b"
   
elif [ $a -gt $b ]
then
   echo "a is greater than b"

else
   echo "a is equal to b"
fi

출력:

Enter the value of a: 4
Enter the value of b: 4
a is equal to b

사용자 입력으로 두 개의 숫자를 받아들이고 어떤 테스트 표현식이 참인지에 따라 결과를 인쇄합니다.

a<b이면 프로그램은a is less than b를 출력합니다.

a>b이면 프로그램은a is greater than b을 인쇄합니다.

조건문이 모두 참이 아니면 프로그램은a is equal to b를 출력합니다.

Bash의 중첩if

if문이 다른 if문 안에 배치되면 중첩 된 if문이라고합니다.

echo -n "Enter numnber : "
read a
 
rem=$(( $a % 2 ))
 
if [ $rem -eq 0 ]
then
  if [ $a -gt 10 ]
  then
    echo "$a is even number and greater than 10."
	
  else
    echo "$a is even number and less than 10."
  fi
else
  echo "$a is odd number"
fi

출력:

Enter numnber : 46
46 is even number and greater than 10.

중첩 된 if문의 사용법을 보여줍니다. 숫자가 정확히 2로 나눌 수 있고 10보다 크면 echo "$a is even number and greater than 10."문이 실행됩니다.