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

相关推荐
草莓熊Lotso7 分钟前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他
青岛佰优联创新科技有限公司8 分钟前
服务器托管,服务器运维的选择
运维·服务器
NiKo_W1 小时前
Linux 初识
linux·运维·服务器
我爱挣钱我也要早睡!3 小时前
Java 复习笔记
java·开发语言·笔记
知白守黑2675 小时前
Ansible角色
运维·服务器·ansible
Jwest20215 小时前
工业显示器在地铁电力监控与运维中的应用
运维·计算机外设
汇能感知8 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun8 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao8 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾8 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang