본문 바로가기

Linux/쉘스크립트

4. 테스트와 분기(Testing and Branching)

=====================================================================
case 형식

case 변수명 in

  "조건1") 실행문1 ;;
  "조건2") 실행문2 ;;
  "조건3") 실행문3 ;;
  *) 실행문4 

esac


e.g.

# case $a in
> 
>   1 ) echo "111" ;;
>   2 ) echo "222" ;;
>   3 ) echo "333" ;;
> esac
111

# case $a in
>   
>   10 ) echo "101010";;
>   9  ) echo "999";;
>   1  ) echo "111";;
> esac
111

# case $a in
>   5 ) echo "555" ;;
>   3 ) echo "333" ;;
>   * ) echo "111" ;;
> esac
111
=====================================================================

===================================================================== LAB> 데몬을 실행하는 스크립트를 작성해보자. 파일명 : /etc/init.d/testmydaemon # install /dev/null /etc/init.d/testmydaemon # vi /etc/init.d/testmydaemon -- /etc/init.d/testmydaemon -- #!/bin/sh # argument count argc=$# --> $# = 인자의 개수를 argc라는 변수에 넣는다. # 인자 개수 체크 부분 if [ $argc -eq 0 ]; then --> 입력된 인자가 없다면 사용법을 출력하고 프로그램 종료. echo "Usage: $0 {start|stop|restart}" exit 1 fi # 이 부분에 case 문을 이용해서 start|stop|restart 를 판단하는 루틴이 오면 # 된다. # 사용자가 입력한 첫 번째 인자를 case ~ esac 문으로 비교해서 데몬을 실행한다. case $1 in start ) # 데몬 실행 코드 echo -e "starting testmydaemon \t\t\t[OK]" ;; stop ) # 데몬 종료 코드 echo -e "stopping testmydaemon \t\t\t[OK]" ;; restart ) # 데몬 종료 코드 echo -e "stopping testmydaemon \t\t\t[OK]" # 데몬 실행 코드 echo -e "starting testmydaemon \t\t\t[OK]" ;; * ) echo "Usage: $0 {start|stop|restart}" esac -- /etc/init.d/testmydaemon -- # /etc/init.d/testmydaemon Usage: /etc/init.d/testmydaemon {start|stop|restart} =====================================================================


===================================================================== LAB> case ~ esac 예제 -- while 문의 형식 -- while [ 조건식 ] do 참일 때 실행문 done e.g. # i=1 # while [ $i -ne 5 ] > do > echo $i > i=$((i+1)) > done 1 2 3 4 - 조건문을 참으로 일부러 만들 때 # while : > do > printf . > sleep 1 > done ................................................ -- while 문의 형식 -- -- 조건 -- 1. 파일명 : menu.sh 2. 출력형식 : -- 명함관리 프로그램 (v 0.1) -- 1) 명함 추가 2) 명함 삭제 3) 명함 검색 4) 전체 명단 출력 q) 프로그램 종료 선택 : -- 조건 -- # install /dev/null menu.sh # vi menu.sh -- menu.sh -- #!/bin/sh # 화면지우기 clear while : do # 화면 출력 부분 cat << MENU -- 명함관리 프로그램 (v 0.1) -- 1) 명함 추가 2) 명함 삭제 3) 명함 검색 4) 전체 명단 출력 q) 프로그램 종료 MENU # 사용자 입력 부분 read -p "선택 : " menu # 입력 체크 부분 case $menu in 1 ) echo 명함 추가 선택 ;; 2 ) echo 명함 삭제 선택 ;; 3 ) echo 명함 검색 선택 ;; 4 ) echo 전체 명단 출력 선택 ;; q | Q ) echo End program ... break ;; esac sleep 1 clear done -- menu.sh -- =====================================================================


'Linux > 쉘스크립트' 카테고리의 다른 글

until과 위치 매개변수 사용  (0) 2015.05.11
5. 루프  (0) 2015.05.06
3. 비교 연산자(이진)  (0) 2015.05.04
2. 파일 테스트 연산자  (0) 2015.05.04
1. 테스트(Test Constructs)  (0) 2015.04.30