一、脚本功能概览¶
1.1 入口逻辑¶
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "检测到操作系统:$NAME"
else
echo "无法检测操作系统类型!"
fi
1.2 菜单结构¶
while true; do
echo "1. 安装 Nginx"
echo "2. 安装 Tomcat"
echo "3. 退出"
read -p "请选择操作 [1-3]:" choice
case "$choice" in
1) ... ;;
2) ... ;;
3) exit 0 ;;
esac
done
二、双层菜单的实现方式¶
2.1 Nginx 与 Tomcat 分支¶
case "$nginx_mode" in
1)
echo "正在进行 Nginx 在线安装..."
;;
2)
echo "正在进行 Nginx 离线安装..."
;;
*)
echo "无效选择,请重新选择!"
;;
esac
2.2 为什么适合做模板¶
- 主循环清晰,易于插入新菜单项。
case分支直观,方便扩展子模块。- 可以继续接入真实安装函数,而不是只输出提示信息。
三、完整脚本¶
以下为本文对应的完整脚本,便于直接复制复用。
3.1 菜单模板.sh¶
#!/bin/bash
# menu.sh - 菜单管理示例脚本
# 检测操作系统类型(仅用于显示,可扩展后续逻辑)
if [ -f /etc/os-release ]; then
. /etc/os-release
DISTRO=$ID
echo "检测到操作系统:$NAME"
else
echo "无法检测操作系统类型!"
fi
echo ""
while true; do
echo "============= 应用安装菜单 ============="
echo "1. 安装 Nginx"
echo "2. 安装 Tomcat"
echo "3. 退出"
read -p "请选择操作 [1-3]:" choice
case "$choice" in
1)
echo "------ Nginx 安装方式 ------"
echo "1. 在线安装"
echo "2. 离线安装"
read -p "请选择安装方式 [1-2]:" nginx_mode
case "$nginx_mode" in
1)
echo "正在进行 Nginx 在线安装..."
# 模拟安装过程
echo "Nginx 在线安装完成!"
;;
2)
echo "正在进行 Nginx 离线安装..."
# 模拟安装过程
echo "Nginx 离线安装完成!"
;;
*)
echo "无效选择,请重新选择!"
;;
esac
;;
2)
echo "------ Tomcat 安装方式 ------"
echo "1. 在线安装"
echo "2. 离线安装"
read -p "请选择安装方式 [1-2]:" tomcat_mode
case "$tomcat_mode" in
1)
echo "正在进行 Tomcat 在线安装..."
# 模拟安装过程
echo "Tomcat 在线安装完成!"
;;
2)
echo "正在进行 Tomcat 离线安装..."
# 模拟安装过程
echo "Tomcat 离线安装完成!"
;;
*)
echo "无效选择,请重新选择!"
;;
esac
;;
3)
echo "退出脚本,再见!"
exit 0
;;
*)
echo "无效选项,请重新输入!"
;;
esac
echo ""
read -p "按回车键返回主菜单..." dummy
echo ""
done