• shell综合项目


    主菜单

    http和Nginx分别的install的菜单,安装过程通过重定向到/dev/null达到看不见的效果

    输入非整数或者大于4的数字都会提示错误

    代码如下:

    [root@server ~]# vim install_menu.sh
    #!/bin/bash

    function menu()
    {
    cat << EOF                                                                                    #将内容显示到屏幕上
    -----------------------------------------
    |***************请输入选项**************|
    -----------------------------------------
    *$(echo -e "\033[35m 1)lamp install\033[0m")
    *$(echo -e "\033[35m 2)lnmp install\033[0m")
    *$(echo -e "\033[35m 3)quit\033[0m")
    *$(echo -e "\033[35m 4)return main menu\033[0m")
    EOF
    }

    function lamp_menu()
    {
    cat << EOF                                                                                  #将内容显示到屏幕上
    -----------------------------------------
    |***************请输入选项**************|
    -----------------------------------------
    *$(echo -e "\033[35m 1)http install\033[0m")
    *$(echo -e "\033[35m 2)mysql install\033[0m")
    *$(echo -e "\033[35m 3)php install\033[0m")
    *$(echo -e "\033[35m 4)return main menu\033[0m")
    EOF
    read -p "####请输入子菜单lamp_menu的选项:" num2
    expr $num2 + 1 &>/dev/null  #expr只支持整数运算,用于判断输入的是不是整数
    if [ $? -ne 0 ] 
    then                                                                                             #如果状态码不为0,代表输入不为整数
        echo "#################################"
        echo "输入错误,请输入整数"
        echo "#################################"
        sleep 1                                                                                    #等待一秒
    elif [ $num2 -gt 4 ]                                                                       #如果输入选项大于4
    then
        echo "#################################"
        echo "输入错误,选项超出范围"
        echo "#################################"
        sleep 1                                                                                    #等待一秒
    fi
    case $num2 in
        1)
        yum install httpd -y &> /dev/null
        if(($?==0))
        then
            echo "安装httpd成功"
        fi
        sleep 2
        lamp_menu                                                                          #返回二级菜单
        ;;    
        2)
        yum install mysql -y &>/dev/null
        if(($?==0))
        then
            echo "安装mysql成功"
        fi
        sleep 2
        lamp_menu                                                                          #返回二级菜单
        ;;
        3)
        yum install *php -y &>/dev/null #php有100多个小的子项,建议直接一起安装
        if(($?==0))
        then
            echo "安装php成功"
        fi
        sleep 2
        lamp_menu                                                                          #返回二级菜单
        ;;
        4)
        clear
        menu                                                                                    #返回主菜单
        ;;
        *)
        clear
        echo                                                                                     #输出换行符
        echo -e "\033[31m输入错误选项,请重新输入\033[0m"
        lamp_menu
    esac
    }
    function lnmp_menu()
    {
    cat << EOF                                                                                #将内容显示到屏幕上
    -----------------------------------------
    |***************请输入选项**************|
    -----------------------------------------
    *$(echo -e "\033[35m 1)nginx install\033[0m")
    *$(echo -e "\033[35m 2)mysql install\033[0m")
    *$(echo -e "\033[35m 3)php install\033[0m")
    *$(echo -e "\033[35m 4)return main menu\033[0m")
    EOF
    read -p "####请输入子菜单lamp_menu的选项:" num3
    expr $num3 + 1 &> /dev/null  #expr只支持整数运算,用于判断输入的是不是整数
    if [ $? -ne 0 ]                                                                     #如果上一条命令执行成功则状态码$?是0
    then
        echo "#################################"
        echo "输入错误,请输入整数"
        echo "#################################"
        sleep 1                                                                                     #等待一秒
    elif [ $num3 -gt 4 ] #如果输入选项大于4
    then
        echo "#################################"
        echo "输入错误,选项超出范围"
        echo "#################################"
        sleep 1                                                                                     #等待一秒
    fi
    case $num3 in
        1)
        yum install nginx -y &> /dev/null
        if(($?==0))
        then
            echo "安装nginx成功"
        fi
        sleep 2
        lnmp_menu                                                                              #返回二级菜单
        ;;    
        2)
        yum install mysql -y &> /dev/null
        if(($?==0))
        then
            echo "安装mysql成功"
        fi
        sleep 2
        lnmp_menu                                                                              #返回二级菜单
        ;;
        3)
        yum install *php -y &> /dev/null
        if(($?==0))
        then
            echo "安装php成功"
        fi
        sleep 2
        lnmp_menu                                                                              #返回二级菜单
        ;;
        4)
        clear
        menu                                                                                        #返回主菜单
        ;;
        *)
        clear
        echo                                                                                        #输出换行符
        echo -e "\033[31m输入错误选项,请重新输入\033[0m"
        lnmp_menu #返回二级菜单
    esac
    }

    clear
    menu
    while true
    do
        read -p "请在主菜单输入选项:" num1
    expr $num3 + 1 &> /dev/null  #expr只支持整数运算,用于判断输入的是不是整数
    if [$? -ne 0]                                                                       #如果上一条命令执行成功则状态码$?是0
    then
        echo "#################################"
        echo "输入错误,请输入整数"
        echo "#################################"
        sleep 1                                                                                      #等待一秒
    elif [ $num3 -gt 4] #如果输入选项大于4
    then
        echo "#################################"
        echo "输入错误,选项超出范围"
        echo "#################################"
        sleep 1                                                                                      #等待一秒
    else
        case $num1 in
        1)
        clear
        lamp_menu
        ;;
        2)
        clear
        lnmp_menu
        ;;
        3)
        clear
        break
        ;;
        4)
        clear
        menu
        ;;
        *)
        clear
        echo -e "\033[31m输入错误选项,请重新输入\033[0m"
        menu
        esac
    fi
    done

  • 相关阅读:
    [附源码]计算机毕业设计springboot财务管理系统
    C/C++程序的内存开辟
    Intel Memory-Management Registers
    操作系统(一)
    基于uni-app和图鸟UI开发上门服务小程序
    基于51单片机pwm调光护眼台灯智能检测光强光控灯设计proteus仿真原理图PCB
    < 今日份知识点:谈谈内存泄漏 及 在 Javascript 中 针对内存泄漏的垃圾回收机制 >
    Kafka之Controller(Broker的领导者)
    FAT12 文件系统(摆脱术语用实际例子介绍)
    知识蒸馏(Knowledge Distillation)
  • 原文地址:https://blog.csdn.net/wzzzzz06/article/details/134221199