#!/bin/bash

#define functionNames
FUNC_NUM_INIT=0
FUNC_NUM_NOTICE=1
FUNC_NUM_GET_PARAM=2
FUNC_NUM_FINALIZE=3

FUNC_NAMES=(func_init func_notice func_getparam func_finalize)

#define parametars
current_mode=0
prev_mode=65535

function change_mode(){
  local next_mode=$1

  prev_mode=${current_mode}
  current_mode=${next_mode}

  return 0
}

function exec_mode(){
  case ${FUNC_NAMES[${current_mode}]} in
    ${FUNC_NAMES[${FUNC_NUM_INIT}]})\
      echo "init"; \
      change_mode ${FUNC_NUM_NOTICE};\
      ;;
    ${FUNC_NAMES[${FUNC_NUM_NOTICE}]}) \
      echo "notice";\
      change_mode ${FUNC_NUM_FINALIZE}; \
      ;;
    ${FUNC_NAMES[${FUNC_NUM_FINALIZE}]})\
      echo "finalize";\
      return 255;\
      ;;
    *)\
      echo "erregal param"; \
      return 255;\
      ;;
  esac
  return 0;
}

function main(){
   local ret=0

   while [ ${ret} -ne 255 ];do
     exec_mode
     ret=$?
   done

   return ${ret}
}


#main関数の実行
main
最終更新:2010年09月25日 00:33