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
    1)
    yum install httpd -y &> /dev/null
    if(($?==0))
    then
        echo "安装httpd成功"
    fi
    sleep 2
    lamp_menu                                                                          #返回二级菜单
    ;;    
    2)
    yum install mysql -y &>/dev/null
    if(($?==0))
    then
        echo "安装mysql成功"
    fi
    sleep 2
    lamp_menu                                                                          #返回二级菜单
    ;;
    3)
    yum install *php -y &>/dev/null #php有100多个小的子项,建议直接一起安装
    if(($?==0))
    then
        echo "安装php成功"
    fi
    sleep 2
    lamp_menu                                                                          #返回二级菜单
    ;;
    4)
    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
    1)
    yum install nginx -y &> /dev/null
    if(($?==0))
    then
        echo "安装nginx成功"
    fi
    sleep 2
    lnmp_menu                                                                              #返回二级菜单
    ;;    
    2)
    yum install mysql -y &> /dev/null
    if(($?==0))
    then
        echo "安装mysql成功"
    fi
    sleep 2
    lnmp_menu                                                                              #返回二级菜单
    ;;
    3)
    yum install *php -y &> /dev/null
    if(($?==0))
    then
        echo "安装php成功"
    fi
    sleep 2
    lnmp_menu                                                                              #返回二级菜单
    ;;
    4)
    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
    1)
    clear
    lamp_menu
    ;;
    2)
    clear
    lnmp_menu
    ;;
    3)
    clear
    break
    ;;
    4)
    clear
    menu
    ;;
    *)
    clear
    echo -e "\033[31m输入错误选项,请重新输入\033[0m"
    menu
    esac
fi
done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/160549.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端面试题之HTML篇

1、src 和 href 的区别 具有src的标签有&#xff1a;script、img、iframe 具有href的标签有&#xff1a;link、a 区别 src 是source的缩写。表示源的意思&#xff0c;指向资源的地址并下载应用到文档中。会阻塞文档的渲染&#xff0c;也就是为什么js脚本放在底部而不是头部的…

【实验记录】为了混毕业·读读论文叭

PR曲线 1. Robust_Place_Recognition_using_an_Imaging_Lidar 在第三节方法中&#xff0c;提到了一些列处理步骤&#xff0c;分析来与vins相似&#xff0c;在vins中是关键帧检索、特征提取、DBoW查询、描述子匹配、PnP RANSAC求解。 第四节的实验部分&#xff0c;没有绘制pr…

适用于 Linux 的 WPF:Avalonia

许多年前&#xff0c;在 WPF 成为“Windows Presentation Foundation”并将 XAML 作为 .NET、Windows 等的 UI 标记语言引入之前&#xff0c;有一个代号为“Avalon”的项目。Avalon 是 WPF 的代号。XAML 现在无处不在&#xff0c;XAML 标准是一个词汇规范。 Avalonia 是一个开…

curl(三)传递数据

一 基础铺垫 ① form表单回顾 关注&#xff1a; from 标签涉及 method、content-type等属性 enctype和Content-type有什么关系 ② Content-Type 思考&#xff1a;数据传输格式和解析类型不一致导致哪些特性? ③ application/x-www-form-urlencoded 1、GET方式 2、POST方…

前端使用firebase配置第三方登录介绍(谷歌登录,facebook登录等)

参考文档 点此处去 firebase 官网点此处去 web端的谷歌登录文档 实现 首先注册一个账号登录firebase&#xff08;可以使用谷歌账号登录&#xff09; 然后创建项目&#xff08;走默认配置就行了&#xff09; 添加应用&#xff08;走默认配置&#xff09;&#xff0c;如图所…

go语言 | grpc原理介绍(二)

gRPC gRPC 是一个高性能、通用的开源 RPC 框架&#xff0c;其由 Google 2015 年主要面向移动应用开发并基于 HTTP/2 协议标准而设计&#xff0c;基于 ProtoBuf 序列化协议开发&#xff0c;且支持众多开发语言。 由于是开源框架&#xff0c;通信的双方可以进行二次开发&#x…

【每日一题】数组中两个数的最大异或值

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;哈希集合 其他语言python3 写在最后 Tag 【哈希集合】【位运算-异或和】【数组】【2023-11-04】 题目来源 421. 数组中两个数的最大异或值 题目解读 找出数组中两个数的最大异或结果。 解题思路 一看数据量达到了 …

【Linux】 passwd命令使用

passwd命令用来更改使用者的密码。 语法 passwd [选项] [用户名] passwd命令 -Linux手册页 著者 克里斯蒂安加夫顿<gaftonredhat.com> 命令选项及作用 执行令 passwd --help 执行命令结果 参数 -k, --keep-tokens 保持身份验证令牌不过期-d, --delete …

接口测试之什么是接口文档?

一、为什么要有接口文档&#xff1f; 没有接口文档的接口测试都是在抓瞎~前面的接口测试重点讲了协议&#xff0c;也讲了fiddler模拟接口请求&#xff0c;估计大部分还是不太懂怎么下手测试。这里小编专门拿出接口文档来做接口测试参考&#xff08;估计很多测试小伙伴没见过接口…

Zabbix监控联想服务器的配置方法

简介 图片 随着科技的发展&#xff0c;对于数据的敏感和安全大部分取决于对硬件性能、故障预判的监测&#xff0c;由此可见实时监测保障硬件的安全很重要&#xff0c;从而衍生了很多对硬件的监测软件&#xff0c;Zabbix就一个不错的选择。开源 开源 开源&#xff01; zabbix是…

Docker 安装ELK7.7.1

(注&#xff1a;在安装之前&#xff0c;本方法必须安装jdk1.8以上版本) (注&#xff1a;如果在虚拟机下用可以直接按方法走即可&#xff0c;如果是想进行备份后在别的机器上进行相关操作&#xff0c;必须把所有带有172.17.0.6、192.168.8.166:9200和端口号都改成你自己的方可使…

短视频矩阵营销系统工具如何助力商家企业获客?

1.批量剪辑技术研发 做的数学建模算法&#xff0c;数学阶乘的组合乘组形式&#xff0c;采用两套查重机制&#xff0c;一套针对素材进行查重抽帧素材&#xff0c;一套针对成片进行抽帧素材打分制度查重&#xff0c;自动滤重计入打分。 2.账号矩阵分发开发 多平台&#xff0c;…