Linux软件下载菜单脚本
实现功能
提供图形化菜单界面
支持常见软件分类(lamp,lnmp)
新建menu.sh脚本
#!/binbashfunction menu(){
cat << EOF
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
* `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
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
* `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 "####please input second_lamp optios[1-4]:" num2
expr $num2 + 1 &> /dev/null
if [ $? -ne 0 ]
thenecho "#############################"echo "waing !!!,input error "echo "please enter choose[1-4]:"echo "#############################"sleep 1
elseif [ $num2 -gt 4 ]thenecho "############################"echo "waing !!!,out df range"echo "please enter choose[1-4]:"echo "############################"sleep 1fi
fi
case $num2 in1)yum install httpd -y &> /dev/nullif (($?==0))thenecho "httpd安装成功"fisleep 2lamp_menu;;2)yum install mariadb-server -y &> /dev/nullif (($?==0))thenecho "mysql安装成功"fisleep 2lamp_menu;;3)yum install php* -y &> /dev/nullif (($?==0))thenecho "php安装成功"fisleep 2lamp_menu;;4)clearmenu;;*)clearechoecho -e "Wring!!!Please input aging choice:[1-4]"lamp_menu
esac
}
function lnmp_menu(){
cat << EOF
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
* `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 "####please input second_lamp optios[1-4]:" num2
expr $num2 + 1 &> /dev/null
if [ $? -ne 0 ]
thenecho "#############################"echo "waing !!!,input error "echo "please enter choose[1-4]:"echo "#############################"sleep 1
elseif [ $num2 -gt 4 ]thenecho "############################"echo "waing !!!,out df range"echo "please enter choose[1-4]:"echo "############################"sleep 1fi
fi
case $num2 in1)yum install nginx -y &> /dev/nullif (($?==0))thenecho "httpd安装成功"fisleep 2lnmp_menu;;2)yum install mariadb-server -y &> /dev/nullif (($?==0))thenecho "mysql安装成功"fisleep 2lnmp_menu;;3)yum install php* -y &> /dev/nullif (($?==0))thenecho "php安装成功"fisleep 2lnmp_menu;;4)clearmenu;;*)clearechoecho -e "Wring!!!Please input aging choice:[1-4]"lnmp_menu
esac
}clear
menu
while true
doread -p "###please enter your first_menu choice:[1-4]" num1expr $num1 + 1 &> /dev/nullif (($?>0))thenecho "-----------------------------"echo "| waring!!! |"echo "|please enter right choice! |"echo "-----------------------------"sleep 1elif (($num1>4))thenecho "-----------------------------"echo "| waring!!! |"echo "| out of range! |"echo "-----------------------------"sleep 1elsecase $num1 in1)clearlamp_menu;;2)clearlnmp_menu;;3)clearbreak;;4)clearmenu;;*)clearecho -e "error!!please enter again choice:[1-4]"menuesacfi
done
脚本执行
bash menu.sh
执行结果
小结
本文介绍了一个基于Bash脚本的图形化菜单系统,用于自动化安装LAMP和LNMP环境。脚本包含三个主要功能:主菜单显示LAMP/LNMP安装选项,二级菜单提供具体组件(如HTTP/Nginx、MySQL、PHP)的安装选择。通过case语句处理用户输入,使用yum命令自动安装软件包,并包含输入验证和错误处理功能。执行方式为运行"bash menu.sh",该脚本为用户提供了便捷的服务器环境搭建工具,支持返回主菜单和退出功能。