项目:shell实现多级菜单脚本编写

目录

1. 提示

2. 演示效果

2.1. 一级菜单

2.2. 二级菜单

2.3. 执行操作

3. 参考代码


1. 提示

本脚本主要实现多级菜单效果,并没有安装LAMP、LNMP环境,如果要用在实际生成环境中部署LNMP、LAMP环境,只需要简单修改一下就可以了。

2. 演示效果

2.1. 一级菜单

2.2. 二级菜单

2.3. 执行操作

3. 参考代码

[root@server ~]# vim multi_menu.sh
#!/bin/bash
#
function menu(){
cat << EOF
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
* `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
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
* `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 "####please input second_lamp optios[1-4]: " num2
expr $num2 + 1 &>/dev/null #这里加1,判断输入的是不是整数。
if [ $? -ne 0 ]
then #如果不等于零,代表输入不是整数。echo "###########################"echo "Waing !!!,input error "echo "Please enter choose[1-4]:"echo "##########################"sleep 1
elseif [ $num2 -gt 4 ]thenecho "###########################"echo "Waing !!!,Out of range "echo "Please enter choose[1-4]:"echo "##########################"sleep 1fi
fi
case $num2 in1)# yum 安装httpdyum install httpd -y &> /dev/nullif(($?==0))thenecho "安装httpd成功"fisleep 2lamp_menu;;2)# yum 安装 MySQL...yum install mysql -y &> /dev/nullif(($?==0))thenecho "安装mysql成功"fisleep 2lamp_menu;;3)# yum 安装 PHP...yum install php -y &> /dev/nullif(($?==0))thenecho "安装php成功"fisleep 2lamp_menu;;4)clearmenu;;*)clearechoecho -e "\033[31mYour Enter the wrong,Please input again Choice:[1-4]\033[0m"lamp_menu
esac
}
function lnmp_menu(){
cat << EOF
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
* `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 "please input second_lnmp options[1-4]: " num3
expr $num3 + 1 &>/dev/null #这里加1,判断输入的是不是整数。
if [ $? -ne 0 ]
then #如果不等于零,代表输入不是整数。echo "###########################"echo "Waing !!!,input error "echo "Please enter choose[1-4]:"echo "##########################"sleep 1
elseif [ $num3 -gt 4 ]thenecho "###########################"echo "Waing !!!,Out of range "echo "Please enter choose[1-4]:"echo "##########################"sleep 1fi
fi
case $num3 in1)# yum 安装 Nginx...yum install nginx -y &> /dev/nullif(($?==0))thenecho "安装nginx成功"fisleep 2lnmp_menu;;2)# yum 安装 MySQL...yum install mysql -y &> /dev/nullif(($?==0))thenecho "安装mysql成功"fisleep 2clearlnmp_menu;;3)# yum 安装 PHP...yum install php -y &> /dev/nullif(($?==0))thenecho "安装php成功"fisleep 2clearlnmp_menu;;4)clearmenu;;*)clearechoecho -e "\033[31mYour Enter the wrong,Please input again Choice:[1-4]\033[0m"lnmp_menu
esac
}clear
menu
while true
doread -p "##please Enter Your first_menu Choice:[1-4] " num1expr $num1 + 1 &>/dev/null #这里加1,判断输入的是不是整数。if [ $? -ne 0 ]then #如果不等于零,代表输入不是整数。echo "----------------------------"echo "| Waring!!! |"echo "|Please Enter Right Choice!|"echo "----------------------------"sleep 1elif [ $num1 -gt 4 ]then # 输入数字超范围echo "----------------------------"echo "| Waring!!! |"echo "| Out of range! |"echo "----------------------------"sleep 1elsecase $num1 in1)clearlamp_menu;;2)clearlnmp_menu;;3)clearbreak;;4)clearmenu;;*)clearecho -e "\033[31mYour Enter a number Error,Please Enter again Choice:[1-4]: \033[0m"menuesacfi
done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#高级--设计模式(七个原则)

一、单一职责原则 原理&#xff1a; 单一职责原则即&#xff1a;对于一个类而言&#xff0c;应该仅有一个引起他变化的原因。换言之&#xff0c;一个类只负责一个功能领域中的相应职责。 单一职责原则是实现高内聚、低耦合的指导方针&#xff0c;它是最简单但又最难运用的原则…

keepalived+HAProxy+MySQL双主实验

keepalivedHAProxyMySQL双主实验 环境准备 node1(HAProxy1):192.168.184.10 node2(HAProxy2):192.168.184.20 node3(MySQL1):192.168.184.30 node4(MySQL2):192.168.184.40 虚拟IP vip&#xff1a;192.168.184.100MySQL部署 在node3执行以下脚本&#xff1a; #!/bin/bash sy…

具身智能(Embodied AI)的概念、核心要素、难点及突破性进展

在ChatGPT之后&#xff0c;具身智能&#xff08;Embodied AI&#xff09;这个大模型概念火了&#xff0c;那什么是具身智能呢&#xff1f; 什么是具身智能&#xff1f; 具身智能作为人工智能发展的一个重要分支&#xff0c;正在迅速崭露头角&#xff0c;成为科技界和大众关注…

c++ http操作接口

很简单的使用libcurl来操作http与服务器来通讯&#xff0c;包含http与https&#xff0c;对外只开放 #include "request.h" #include "response.h" #include "url.h" 三个头文件&#xff0c;简单易用&#xff0c;使用的实例如下&#xff1a; vo…

【Linux】部署单机项目(自动化启动)

目录 一.jdk安装 二.tomcat安装 三.MySQL安装 四.部署项目 一.jdk安装 1.上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录&#xff0c;将安装包拖进去 2.解压安装包 防止后面单个系列解压操作&#xff0c;我这边就直接将所有的要用的全部给解压&#xff0c;如下图注…

【数据集】世界水评估方案指标:灌溉面积/灌溉用水等

世界水评估方案指标 概述(Overview)数据下载(Data Download)案例1:F. Irrigated lands案例2:G. Irrigated water use参考World Water Development Report II-Indicators for World Water Assessment Programme 概述(Overview) 在关于全球环境变化和可持续发展的辩论…

(详细使用指南)Linux下交叉编译带ffmpeg的opencv并移植到RK3588等ARM端

一 问题背景 瑞芯微RK3588等嵌入式板作为边缘端设备为算法模型的部署提供了便利&#xff0c;目前很多分类或好检测模型针对边缘端做了优化或量化&#xff0c;使得在边缘端也能达到实时稳定的识别和检测效果。 但嵌入式设备普遍的flash emmc不大&#xff0c;一般在32G左…

Jitsi Meet 大型视频会议调优方案

jitsi meet 大型视频会议调优方案 在举办一些大型会议的时候,比如100个人会议,为了节约宽带和节省资源,我们并不会选择传输全部的音视频资源。 举个例子,比如100个人线下会议,如果大家都说话的情况下,大家要么听不清,要么听得是声音最大的那几个人。 视频会议也可以借…

Linux开发:pam5 Ubuntu22.04中编译linux-pam

Ubuntu22.04中使用的是linux-pam GitHub - linux-pam/linux-pam: Linux PAM (Pluggable Authentication Modules for Linux) project linux-pam不仅包含了源代码还有相关的文档以及例子&#xff0c;是学习pam的一个很好的参考。 编译linux-pam的方法&#xff1a; 1.下载源代码…

Java多线程系列——JDK并发包

Java并发编程是Java开发中不可或缺的一部分&#xff0c;它允许开发者编写能够同时执行多个任务的应用程序&#xff0c;提高了程序的执行效率和响应速度。自从Java 5开始&#xff0c;java.util.concurrent包成为了并发编程的核心&#xff0c;引入了多种并发工具类&#xff0c;使…

Redis3种特殊数据结构详解

文章目录 前言一、地理空间&#xff08;Geospatial&#xff09;&#xff1a;二、HyperLogLogs&#xff1a;二、位图&#xff08;Bitmaps&#xff09;&#xff1a;总结 前言 当我们探索Redis时&#xff0c;除了常见的键值存储功能外&#xff0c;还存在一些特殊类型&#xff0c;…

突破编程_C++_面试(函数(1))

面试题1&#xff1a;函数定义与声明有什么区别&#xff1f; 函数定义与声明的区别主要体现在以下几个方面&#xff1a; 内存分配&#xff1a; 定义&#xff1a;函数定义会为函数分配内存空间&#xff0c;并且可能会为函数内部的局部变量分配内存。定义提供了函数在程序中的唯一…

Mysql运维篇(五) 部署MHA--主机环境配置

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。如有侵权&#xff0c;请留言&#xff0c;我及时删除&#xff01; 大佬博文 https://www.cnblogs.com/gomysql/p/3675429.html MySQL 高可用&#xff08;MHA&#x…

SpringMVC 学习(五)之域对象

目录 1 域对象介绍 2 向 request 域对象共享数据 2.1 通过 ServletAPI (HttpServletRequest) 向 request 域对象共享数据 2.2 通过 ModelAndView 向 request 域对象共享数据 2.3 通过 Model 向 request 域对象共享数据 2.4 通过 map 向 request 域对象共享数据 2.5 通过…

【前端素材】推荐优质后台管理系统Jampack平台模板(附源码)

一、需求分析 后台管理系统&#xff08;或称作管理后台、管理系统、后台管理平台&#xff09;是一种专门用于管理网站、应用程序或系统后台运营的软件系统。它通常由一系列功能模块组成&#xff0c;为管理员提供了管理、监控和控制网站或应用程序的各个方面的工具和界面。以下…

macOS系统下载IDEA的操作流程

第一步 进入官网 Download IntelliJ IDEA – The Leading Java and Kotlin IDE 第二步 根据mac的芯片选择版本下载 芯片的查看位置是【设置】-【通用】-【关于本机】-第二个&#xff0c;我的是Apple芯片&#xff0c;选Apple Silicon -- 第三步 右上角下载处打开安装包&…

C++——基础复习——双色球

跟着哔站的视频复习一遍基础知识&#xff0c;根据老师的思路写双色球项目。相较老师的程序加入了一些功能。没有用到模板知识&#xff0c;欢迎交流。 1、6个红球1个蓝球&#xff0c;红球号码1-33&#xff0c;号码不重复&#xff1b;篮球号码1-15. 2、自选号码功能&#xff1a…

Seata 入门知识

目录 概述 工作流程 工作模式 AT模式 TCC模式 概述 Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 AT模式是阿里首推…

CUDA C++ 编程指南

目录 1. Introduction1.1. The Benefits of Using GPUs1.2. CUDA: A General-Purpose Parallel Computing1.3. A Scalable Programming Model CUDA C Programming Guide 1. Introduction 1.1. The Benefits of Using GPUs 在相似的价格和功耗范围内&#xff0c;图形处理单…

9个最受欢迎的开源自动化测试框架盘点!

自动化测试框架可以帮助测试人员评估多个Web和移动应用程序的功能&#xff0c;安全性&#xff0c;可用性和可访问性。尽管团队可以自己构建复杂的自动化测试框架&#xff0c;但是当他们可以使用现有的开源工具&#xff0c;库和测试框架获得相同甚至更好的结果时&#xff0c;通常…