【shell 练习5】编写简单的多级菜单
一、简单的多级菜单
[root@web129 ~]# cat menu.sh
#!/bin/bash
#shell菜单演示
function menu()
{
echo -e `date`
cat <<EOF
-----------------------------------
>>>菜单主页:
`echo -e "\033[35m 1)系统状态\033[0m"`
`echo -e "\033[35m 2)服务管理\033[0m"`
`echo -e "\033[35m 3)主菜单\033[0m"`
`echo -e "\033[35m Q)退出\033[0m"`
EOF
read -p "请输入对应序列号:" num1
case $num1 in
)
echo -e "\033[32m >>>系统状态-> \033[0m"
system_menu
;;
)
echo -e "\033[32m >>>服务管理-> \033[0m"
server_menu
;;
)
echo -e "\033[32m >>>返回主菜单-> \033[0m"
menu
;;
Q|q)
echo -e "\033[32m--------退出--------- \033[0m"
exit
;;
*)
echo -e "\033[31m err:请输入正确的编号\033[0m"
menu
esac
}
function system_menu()
{
cat<<EOF
------------------------
********系统状态********
------------------------
)nginx 状态
)http 状态
)tomcat 状态
X)返回上一级目录
------------------------
EOF
read -p "请输入编号:" num2
case $num2 in
)
`echo -e "systemctl status nginx.service"`
system_menu
;;
)
`echo -e "systemctl status httpd.service"`
system_menu
;;
)
`echo -e "systemctl status tomcat.service"`
system_menu
;;
x|X)
echo -e "\033[32m---------返回上一级目录------->\033[0m"
menu
;;
*)
echo -e "请输入正确编号"
system_menu
esac
}
function server_menu()
{
cat<<EOF
------------------------
)开启服务
)停止服务
X)返回上一级目录
------------------------
EOF
read -p "请输入编号:" num3
case $num3 in
)
op_menu
;;
)
op_menu1
;;
x|X)
echo -e "\033[32m-- -----返回上一级目录---------> \033[0m"
menu
;;
*)
echo -e "请输入正确编号"
system_menu
esac
} function op_menu()
{
cat<<EOF
------------------------
)开启nginx服务
)开启http服务
)开启tomcat服务
X)返回上一级目录
------------------------
EOF
read -p "请输入编号:" num4
case $num4 in
)
`echo -e "systemctl start nginx.service"`
op_menu
;;
)
`echo -e "systemctl start httpd.service"`
op_menu
;;
)
`echo -e "systemctl start tomcat.service"`
op_menu
;;
x|X)
echo -e "\033[32m--------返回上一级目录------->\033[0m"
server_menu
;;
*)
echo -e "请输入正确编号"
op_menu
esac
}
function op_menu1()
{
cat<<EOF
------------------------
)停止nginx服务
)停止http服务
)停止tomcat服务
X)返回上一级目录
------------------------
EOF
read -p "请输入编号:" num5
case $num5 in
)
`echo -e "systemctl stop nginx.service"`
op_menu1
;;
)
`echo -e "systemctl stop httpd.service"`
op_menu1
;;
)
`echo -e "systemctl stop tomcat.service"`
op_menu1
;;
x|X)
`echo -e "\033[32m >>>返回上一级目录---> \033[0m"`
server_menu
;;
*)
echo -e "请输入正确编号"
op_menu1
esac
}
menu
[root@web129 ~]#
显示效果如下:


【shell 练习5】编写简单的多级菜单的更多相关文章
- Python简单实现多级菜单
# -*- coding: utf-8 -*- # @Time : 2018-06-01 13:40 # @Author : 超人 # @Email : huxiaojiu111@gmail.com ...
- (转)shell实现多级菜单脚本编写
shell实现多级菜单脚本编写 原文:https://www.yuanmas.com/info/2gOwBPvqyb.html 这篇文章主要介绍了Shell实现多级菜单系统安装脚本实例分享,本文脚本用 ...
- Shell实现多级菜单系统安装维护脚本实例分享
Shell实现多级菜单系统安装维护脚本实例分享 这篇文章主要介绍了Shell实现多级菜单系统安装维护脚本实例分享,本文脚本用多级菜单实现管理WEB服务器.Mysql服务器.Nginx服器等,需要的朋友 ...
- 小鸟初学Shell编程(二)编写简单的Shell脚本
Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将 ...
- 单片机C语言下LCD多级菜单的一种实现方法
摘要: 介绍了在C 语言环境下,在LCD 液晶显示屏上实现多级嵌套菜单的一种简便方法,提出了一个结构紧凑.实用的程序模型. 关键词: 液晶显示屏; 多级菜单; 单片机; C 语言; LCD 中 ...
- jquery自定义插件-参数化配置多级菜单导航栏插件
1 自定义菜单导航栏插件的必要性 看图说话,下面是利用自定义的菜单导航栏插件simpleMenu创建的网站导航示例: 插件默认提供的是如上图的导航栏样式,即一二级菜单为横向分布:三四级菜单为纵向分布. ...
- 前端开发css实战:使用css制作网页中的多级菜单
前端开发css实战:使用css制作网页中的多级菜单 在日常工作中,大家都会遇到一些显示隐藏类菜单,比如页头导航.二维码显示隐藏.文本提示等等......而这些效果都是可以使用纯css实现的(而且非常简 ...
- MVC5+EF6 入门完整教程13 -- 动态生成多级菜单
稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据mode ...
- zTree下拉菜单多级菜单多选实现
惯例,先上图: 这是在一个项目中,为了满足样式美观.多级菜单以及多选而将zTree插件更改过后的效果. 在实际的开发过程中,本来zTree也是可以满足需求的,但是zTree多选的话需要checkbox ...
随机推荐
- C# 5.0中使用CallerMemberName、CallerFilePath和CallerLineNumber获取代码的调用方信息(转载)
很多时候,我们需要在运行过程中记录一些调测的日志信息,如下所示: public void DoProcessing() { TraceMessage("DoProcessing()被XXX调 ...
- jdk8新特性之双冒号 :: 用法及详解
jdk8的新特性有很多,最亮眼的当属函数式编程的语法糖,本文主要讲解下双冒号::的用法. 概念 类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function.比如: Function& ...
- delect 删除
delete ---整表数据删除 (慎用) delete * from 表名; ---条件删除 delete * from 表名 where 限制条件;
- iOS视频处理
在iOS中,apple提供了AVFoundation 用来处理音视频,基本能满足一些常用的音视频处理需求,而且能调用的硬件编解码接口,能提高不少效率,这是其它库所不能达到的.最近做过的Recnow S ...
- 自定义UICollectionViewLayout并添加UIDynamic
大家也可以到这里查看. UICollectionView是iOS6引入的控件,而UIDynamicAnimator是iOS7上新添加的框架.本文主要涵盖3部分: 一是简单概括UICollectionV ...
- Spring知识点小结汇总
Spring部分 1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控 ...
- linux系统的介绍与环境搭建准备38-40
操作系统(OS):用于控制管理计算机,形成在用户和机器之间传递信息的系统软件 linux是什么? <--unix系统是linux的前身---> 特点: 开放的源代码,自由修改 自由传播,没 ...
- 在Java中用正则表达式判断一个字符串是否是数字的方法
package chengyujia; import java.util.regex.Pattern; public class NumberUtil { /** * 判断一个字符串是否是数字. * ...
- shell习题第2题:统计ip访问量
[题目要求] 有日志1.log,部分内容如下: 112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com “/seccode. ...
- 使用jQuery实现向上循环滚动效果(超简单)
今天突发奇想 想到的一个新思路 通过使用animate改变外边距达到滚动效果 再用复制节点插入到最后一行达到循环目的 HTML代码如下 <body> <ul style=" ...