linux编写菜单返回上一级,【shell 练习5】编写简单的多级菜单

这篇博客展示了如何在Linux环境下用Shell脚本实现一个包含多个子菜单的交互式菜单系统。用户可以查看系统状态、管理服务,并能返回上一级菜单。菜单包括系统状态检查(如nginx、http和tomcat服务的状态)和服务操作(如启动和停止)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简单的多级菜单

[root@web129 ~]# cat menu.sh

#!/bin/bash

#shell菜单演示

function menu()

{

echo -e `date`

cat <

-----------------------------------

>>>菜单主页:

`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

1)

echo -e "\033[32m >>>系统状态-> \033[0m"

system_menu

;;

2)

echo -e "\033[32m >>>服务管理-> \033[0m"

server_menu

;;

3)

echo -e "\033[32m >>>返回主菜单-> \033[0m"

menu

;;

q|q)

echo -e "\033[32m--------退出--------- \033[0m"

exit 0

;;

*)

echo -e "\033[31m err:请输入正确的编号\033[0m"

menu

esac

}

function system_menu()

{

cat<

------------------------

********系统状态********

------------------------

1)nginx 状态

2)http 状态

3)tomcat 状态

x)返回上一级目录

------------------------

eof

read -p "请输入编号:" num2

case $num2 in

1)

`echo -e "systemctl status nginx.service"`

system_menu

;;

2)

`echo -e "systemctl status httpd.service"`

system_menu

;;

3)

`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<

------------------------

1)开启服务

2)停止服务

x)返回上一级目录

------------------------

eof

read -p "请输入编号:" num3

case $num3 in

1)

op_menu

;;

2)

op_menu1

;;

x|x)

echo -e "\033[32m-- -----返回上一级目录---------> \033[0m"

menu

;;

*)

echo -e "请输入正确编号"

system_menu

esac

}

function op_menu()

{

cat<

------------------------

1)开启nginx服务

2)开启http服务

3)开启tomcat服务

x)返回上一级目录

------------------------

eof

read -p "请输入编号:" num4

case $num4 in

1)

`echo -e "systemctl start nginx.service"`

op_menu

;;

2)

`echo -e "systemctl start httpd.service"`

op_menu

;;

3)

`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<

------------------------

1)停止nginx服务

2)停止http服务

3)停止tomcat服务

x)返回上一级目录

------------------------

eof

read -p "请输入编号:" num5

case $num5 in

1)

`echo -e "systemctl stop nginx.service"`

op_menu1

;;

2)

`echo -e "systemctl stop httpd.service"`

op_menu1

;;

3)

`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 ~]#

显示效果如下:

91b2834fe0557bb295e57731e1c5c881.png

b394f5e83feaf09f7ebf9633f300cdd7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值