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:~$
原文地址:https://www.cnblogs.com/tannerBG/p/4057422.html