Shell 编程基础之 Select 练习

一、语法

select 变量 in con1 con2 con3    # 自动列出 con1,con2,con3 的选择菜单
do
    #执行内容
break    # select本身就是一个循环,break是当选择后,就跳出循环
done

二、练习

  1. select + case 模拟 Linux 启动脚本
    function programstatus(){
      if [ "$1" -eq 0 ]; then
        echo "* program is running"
      else
        echo "* program has stopped"
      fi
    }
    
    status=0 #0: start; 1:stop
    select p in "start" "stop" "status" "restart" "*" ""
    do
    case "$p" in
    "start")
      status=0
      programstatus $status
      ;;
    "stop")
      status=1
      programstatus $status
      ;;
    "status")
      programstatus $status
      ;;
    "restart")
      if [ "$status" -eq 0 ]; then
        status=1
        echo "* program has stopped"
      fi
      status=0
      echo "* program is running"
      ;;
    "")
      break
      ;;
    *)
      echo "Plz input [start|stop|status|restart]"
       ;;
    esac
    done
    user@ae01:~$ ./test.sh
    1) start
    2) stop
    3) status
    4) restart
    5)
    #? 1
    * program is running
    #? 2
    * program has stopped
    #? 3
    * program has stopped
    #? 4
    * program is running
    #? 5
    user@ae01:~$

     

posted @ 2014-10-28 17:45  TannerBG  阅读(231)  评论(0编辑  收藏  举报