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

쉘프로그래밍강좌028: 쉘프로그램내에서 사용되는 case문의 사용방법과 실 사용 예

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

쉘프로그래밍강좌028: 쉘프로그램내에서 사용되는 case문의 사용방법과 실 사용 예

 

 

 

 

 

리눅스 쉘프로그램내에서 사용되는 case문은 선택 가능한 경우의 수가 여러 가지일 때 사용하는 조건 분기문입니다.

 

 

 

 주로 case문은 중첩되는 if문을 대신하여 사용되는 경우가 많습니다.

 

 

 

 , “if~elif~else”과 같이 중첩되는 if문으로 여러 개의 조건문을 사용하면 프로그램의 가독율이 떨어지기 때문에 작성하기 쉽고 읽기 쉬운 case문을 사용합니다.

 

 

 

 

 

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

 

 

 

 

 

case “$변수” in

1) 변수가 값1일 경우에 실행될 명령문들
;;
2) 변수가 값2일 경우에 실행될 명령문들

;;

3) 변수가 값3일 경우에 실행될 명령문들

;;

4) 변수가 값4일 경우에 실행될 명령문들

;;

.....

*) 위의 해당사항이 없을 경우에 실행될 명령문들
;;

esac

 

 

 

 

 

위의 case문 형식에서 사용자가 입력한 변수의 값이

 

 

1”과 일치할 때에는 그 뒤의 명령문들이 실행되고

 

 

2”와 일치할 때에는 그 뒤의 명령문들이 실행되고

 


3”과 일치할 때에는 그 뒤의 명령문들이 실행되고

.....

 



 

해당되는 값이 없을 경우에는 *)에 있는 명령문들이 실행됩니다.

 

 

 

 
그리고 esac case문의 종료를 의미합니다.

 

 

 

 

 

그러면 실제로 case문을 이용한 간단한 쉘프로그램의 예를 보도록 하겠습니다.

 

 

 

 

 

  아래의  쉘프로그램은 사용자가 선택한 메뉴를 A,B,C,D,E중에 원하는 문자를 입력 받아서 그에 맞는 실행을 하게 됩니다.

 

 

 

 , 사용자가 선택한 메뉴가

A
이면 "you select A MENU"이 출력되고

B이면 "you select B MENU"이 출력되고

C이면 "you select C MENU"이 출력되고

D이면 "you select D MENU"이 출력되고

E이면 "you select E MENU"가 각각 출력됩니다.

 

 

 

 

 

 

 

 

그리고 위의 선택 외의 값이 선택되면 "select A, B, C, D, or E "가 출력됩니다.

 

 

 

 

 

다음은 이 쉘프로그램의 내용입니다.

 

 

 

 

 

[root@RockyLinux01 test]# cat case01.sh

#!/bin/bash

 

echo "Select MENU to run (A, B, C, D, E) : "

read point

 

case "$point" in

 

A) echo "you select A MENU" ;;

 

B) echo "you select B MENU" ;;

 

C) echo "you select C MENU" ;;

 

D) echo "you select D MENU" ;;

 

E) echo "you select E MENU" ;;

 

*) echo "select A, B, C, D  or  E " ;;

 

esac

[root@RockyLinux01 test]#

 

 

 

 

다음은 위의 case01.sh 쉘프로그램을 실행한 예입니다.

 

 

 

 

 

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

Select MENU to run (A, B, C, D, E) :

A

you select A MENU

[root@RockyLinux01 test]#

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

Select MENU to run (A, B, C, D, E) :

B

you select B MENU

[root@RockyLinux01 test]#

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

Select MENU to run (A, B, C, D, E) :

C

you select C MENU

[root@RockyLinux01 test]#

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

Select MENU to run (A, B, C, D, E) :

D

you select D MENU

[root@RockyLinux01 test]#

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

Select MENU to run (A, B, C, D, E) :

E

you select E MENU

[root@RockyLinux01 test]#

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

Select MENU to run (A, B, C, D, E) :

T

select A, B, C, D  or  E

[root@RockyLinux01 test]#

 

위의 첫번째 실행에서

 

 

사용자가 입력한 메뉴가 A이기 때문에 “you select A MENU”가 출력되었고,

 

 

사용자가 입력한 메뉴가 B이기 때문에 “you select B MENU”가 출력되었고,

 

 

사용자가 입력한 메뉴가 C이기 때문에 “you select C MENU”가 출력되었고,

 

 

 

사용자가 입력한 메뉴가 D이기 때문에 “you select D MENU”가 출력되었고,

 

 

사용자가 입력한 메뉴가 E이기 때문에 “you select E MENU”가 각각 출력되었습니다.

 

 

 

 

 

그리고 마지막으로 T를 입력한 경우에는 메뉴 선택범위를 벗어난 것이므로 “select A, B, C, D, or E”가 출력된 예입니다.

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  84 명