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

yum install httpd -y &> /dev/null

if(($?==0))

then

echo "安装httpd成功"

fi

sleep 2

lamp_menu #返回二级菜单

;;

yum install mysql -y &>/dev/null

if(($?==0))

then

echo "安装mysql成功"

fi

sleep 2

lamp_menu #返回二级菜单

;;

yum install *php -y &>/dev/null #php有100多个小的子项,建议直接一起安装

if(($?==0))

then

echo "安装php成功"

fi

sleep 2

lamp_menu #返回二级菜单

;;

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

yum install nginx -y &> /dev/null

if(($?==0))

then

echo "安装nginx成功"

fi

sleep 2

lnmp_menu #返回二级菜单

;;

yum install mysql -y &> /dev/null

if(($?==0))

then

echo "安装mysql成功"

fi

sleep 2

lnmp_menu #返回二级菜单

;;

yum install *php -y &> /dev/null

if(($?==0))

then

echo "安装php成功"

fi

sleep 2

lnmp_menu #返回二级菜单

;;

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

clear

lamp_menu

;;

clear

lnmp_menu

;;

clear

break

;;

clear

menu

;;

*)

clear

echo -e "\033[31m输入错误选项,请重新输入\033[0m"

menu

esac

fi

done

相关推荐
朴马丁19 分钟前
从制造到智造:PLM如何赋能企业研发创新
大数据·运维·人工智能·食品行业·流程行业plm·化工新材料行业·新能源材料行业
爱小黄35 分钟前
使用docker搭建集群-使用 Docker 搭建 KingbaseES 集群
运维·docker·容器
zhougl9961 小时前
Gateway 和 Nginx 路由区别
运维·nginx·gateway
听风3472 小时前
Arch Linux 软件安装完全指南
linux·运维·archlinux·pacman
沉迷学习 日益消瘦3 小时前
10-Gateway API
运维·kubernetes·gateway
智购科技智能售货柜3 小时前
无人售货机连不上服务器?MQTT 频繁掉线排查全流程~YH
运维·服务器
摇滚侠3 小时前
《RocketMQ 官网》阅读笔记 RocketMQ 消息队列 MessageQueue 消息 Messagege
笔记·rocketmq
心念枕惊3 小时前
Docker--Docker Swarm集群
运维·docker·容器
難釋懷4 小时前
Nginx-proxy缓存断点续传缓存 range
运维·nginx·缓存
Ztt6666666664 小时前
【无标题】
经验分享·笔记·其他·百度·微信公众平台