강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

쉘프로그래밍강좌037: 쉘프로그램내에서 사용되는 if~elif~else문의 사용방법과 실 사용 예

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

쉘프로그래밍강좌037: 쉘프로그램내에서 사용되는 if~elif~else문의 사용방법과 실 사용 예

 

 

 

 

 

리눅스 쉘프로그램내에서의 if~elif~else문은 여러 개의 조건식을 평가하여 프로그램의 흐름을 조건에 맞는 곳으로 분기하기 위한 목적으로 사용됩니다.

 

 

 

 , 선택할 경우의 수가 여러 가지일 경우에 주로 사용되며 실제 쉘프로그램에서는 “if~elif~else”문과 case문이 같은 목적으로 사용됩니다.

 

 

 

 

 

사용형식은 다음과 같습니다.

 

 

 

 

 

if [ 테스트문 ]

 

then

위의 if참일 경우 실행될 명령문들

 

elif [ 테스트문 ]

then

바로 위의 elif문이 참일 경우 실행될 명령문들

 

elif [ 테스트문 ]

then

바로 위의 elif문이 참일 경우 실행될 명령문들

 

else

  위의 모든 테스트문이 거짓일 경우에 실행될 명령문들

fi

 

 

 

위의 사용형식을 보시면 이해가 되실 것입니다.

 

 

 

 실제 간단한 쉘프로그램을 예로 들어 보겠습니다.

 

 

 

 

 

다음 예로든 쉘프로그램은 사용자의 점수를 입력 받아서 그 점수에 따른 등급을 출력하는 것입니다.

 

 

 

 

 

, 사용자가 입력한 값이

0
점에서부터 20점까지이면   : “Your grade : E”를 출력 합니다.

 

 

 

 
21
점에서부터 40점까지이면  : “Your grade : D”를 출력 합니다.

 

 

 


41
점에서부터 60점까지이면  : “Your grade : C”를 출력 합니다.

 

 

 


61
점에서부터 80점까지이면  : “Your grade : B”를 출력 합니다.

 

 

 


81
점에서부터 100점까지이면 : “Your grade : A”를 출력 합니다.

 

 

 


그 외의 점수가 입력되면      : "It is impossible point."를 출력 합니다.

 

 

 



, 아래의 쉘프로그램은 if~elif~else문을 사용한 것으로 위와 같이 처리 된다는 것을 알 수 있습니다.

 

 

 

 

 

[root@RockyLinux01 test]# cat if004.sh

#!/bin/bash

 

echo "Input your point(from 0 to 100) : "

read point

 

if [ $point -lt 0 -o $point -gt 100 ]

then

   echo "It is impossible point."

 

elif [ $point -ge 0 -a $point -le 20 ]

then

  echo " Your grade : E "

 

elif [ $point -ge 21 -a $point -le 40 ]

then

  echo " Your grade : D "

 

elif [ $point -ge 41 -a $point -le 60 ]

then

  echo " Your grade : C "

 

elif [ $point -ge 61 -a $point -le 80 ]

then

  echo " Your grade : B "

 

elif [ $point -ge 81 -a $point -le 100 ]

then

  echo " Your grade : A "

 

else

   echo " It is not allowed."

fi

[root@RockyLinux01 test]#

 

아래는 if004.sh 쉘프로그램을 실행한 예입니다.

 

 

 

 

 

[root@RockyLinux01 test]# ./if004.sh

Input your point(from 0 to 100) :

5

 Your grade : E

[root@RockyLinux01 test]#

[root@RockyLinux01 test]# ./if004.sh

Input your point(from 0 to 100) :

25

 Your grade : D

[root@RockyLinux01 test]#

[root@RockyLinux01 test]# ./if004.sh

Input your point(from 0 to 100) :

45

 Your grade : C

[root@RockyLinux01 test]#

[root@RockyLinux01 test]# ./if004.sh

Input your point(from 0 to 100) :

65

 Your grade : B

[root@RockyLinux01 test]#

[root@RockyLinux01 test]# ./if004.sh

Input your point(from 0 to 100) :

85

 Your grade : A

[root@RockyLinux01 test]#

[root@RockyLinux01 test]# ./if004.sh

Input your point(from 0 to 100) :

0

 Your grade : E

[root@RockyLinux01 test]#

[root@RockyLinux01 test]# ./if004.sh

Input your point(from 0 to 100) :

-10

It is impossible point.

[root@RockyLinux01 test]#

[root@RockyLinux01 test]# ./if004.sh

Input your point(from 0 to 100) :

110

It is impossible point.

[root@RockyLinux01 test]#

 

 

 

 

위의 결과를 보시면 각각의 입력점수에 맞게 등급이 출력됨을 알 수 있습니다.

 

 

 

 그리고 만약 -10과 같은 음의 점수나 110과 같이 100이 넘는 점수일 경우에는 “It is impossible point.”메시지가 출력되었다는 것을 알 수 있습니다.

 

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,789 개
  • 현재 접속자 :  254 명