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

相关推荐
researcher-Jiang9 分钟前
高性能计算之MPI:第一次MPI并行程序设计练习
linux·运维·服务器
aaaameliaaa13 分钟前
计算斐波那契数(递归、迭代)(1,1,2,3,5.....)
c语言·开发语言·笔记·算法·排序算法
Promise微笑16 分钟前
工业微量水分监测:精密露点仪选型逻辑与行业应用实证深度报告
大数据·运维
小c君tt1 小时前
linux学习笔记1
linux·笔记·学习
ysu_03142 小时前
高数期末复习笔记
笔记
联盟分享专家2 小时前
垂直工具型 SaaS 的增长实战:如何把用户变成推广者?
运维
疯狂打码的少年2 小时前
【操作系统】段式存储管理与段页式存储管理
笔记
江畔柳前堤2 小时前
第16章:docker企业级实战综合项目
运维·git·安全·docker·容器·eureka
Leon-Ning Liu3 小时前
【真实经验分享】OGG抽取进程报错 ORA-07445 [kgherrordmp()+986] ORA-00600 [17114]分析步骤
运维·数据库
QWEDDRFTG3 小时前
运维长期经验总结:从故障倒推服务器电源线选购标准
运维·服务器