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.rhkb.cn/news/182821.html

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

相关文章

蓝桥杯官网填空题(方格计数)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如下图所示&#xff0c;在二维平面上有无数个 11 的小方格。 我们以某个小方格的一个顶点为圆心画一个半径为 50000 的圆。 你能计算出这个圆里有多少个完整的小方…

CSAPP BOMB LAB part2

bomb lab part2 phase3 将rsp0xc存入rcx, 将rsp0x8存入rdx, 地址0x4025cf存储格式&#xff0c;然后调用好sscanf函数&#xff0c; 当rsp0x8的值大于0x7, 会跳转到400fad, 会boom!!! 所以rsp0x8的值不大于0x7。 0x8rsp的值不进入ja的代码段&#xff0c;会执行400f71对应的指令…

docker---dockerfile相关知识

第 3 章 Docker 高级实践 在这一部分我们主要来介绍一些Docker的高级内容&#xff1a; Dockerfile 和 Docker compose 3.1 Dockerfile Dockerfile我们从下面的几个方面来介绍&#xff1a; Dockerfile简介 Dockerfile快速入门 Dockerfile详解 Dockerfile简单 实践 3.1.1 Docke…

阿里云安全恶意程序检测(速通一)

阿里云安全恶意程序检测 赛题理解赛题介绍赛题说明数据说明评测指标 赛题分析数据特征解题思路 数据探索数据特征类型数据分布箱型图 变量取值分布缺失值异常值分析训练集的tid特征标签分布测试集数据探索同上 数据集联合分析file_id分析API分析 特征工程与基线模型构造特征与特…

【Kubernetes部署】通过Kubeadm部署Kubernetes高可用集群

Kubeadm 一、kubeadm部署思路二、基本架构2.1 资源分配2.2 系统初始化操作&#xff08;所有节点&#xff09;2.2.1关闭防火墙、selinux和swap分区2.2.2 修改主机名&#xff0c;添加域名映射2.2.3 内核相关2.2.4 加载ip_vs模块2.2.5 时间同步 三、部署docker3.1 通过yum安装dock…

程序员笔记本电脑选 windows 还是 MAC

计算机选择是每个进入 IT 行业同学的第一个重要选择&#xff0c;那么你是怎么选择的呢&#xff1f; 选择操作系统&#xff08;Windows还是macOS&#xff09;取决于程序员的需求、偏好和工作流程。每个操作系统都有其优点和缺点&#xff0c;下面将分别讨论它们&#xff0c;以帮助…

小红书运营篇1,新手如何快速分析拆解对标账号

hi&#xff0c;同学们&#xff0c;本期是第1期AI运营技巧篇 很多新手博主初期都非常迷茫&#xff0c;主要是因为他们没有找对标账号&#xff0c;也没有充分分析同行账号。 有些人可能会说&#xff0c;“我不想参考同行&#xff0c;我想要追求创新”。这种勇气是真的非常值得鼓…

文件夹批量改名:轻松实现文件夹随机重命名

无论是在我们的日常生活还是工作中&#xff0c;批量重命名文件夹是一项非常常见的任务。当我们需要整理或分类大量的文件时&#xff0c;往往需要对相应的文件夹进行重命名。然而&#xff0c;手动一个接一个地完成这个任务不仅会消耗大量的时间&#xff0c;还容易在重命名过程中…

JS逆向爬虫---请求参数加密②【某麦数据analysis参数加密】

主页链接: https://www.qimai.cn/rank analysis逆向 完整参数生成代码如下&#xff1a; const {JSDOM} require(jsdom) const dom new JSDOM(<!DOCTYPE html><p>hello</p>) window dom.windowfunction customDecrypt(n, t) {t t || generateKey(); //…

《006.Springboot+vue之旅游信息推荐系统》【有文档】

《006.Springbootvue之旅游信息推荐系统》【有文档】 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatis; 前台&#xff1a;vueElementUI; [2]功能模块展示&#xff1a; …

汽车网络安全渗透测试概述

目录 1.汽车网络安全法规概述 1.1 国外标准 1.2 国内标准 2.汽车网络安全威胁分析 2.1 汽车网络安全资产定义 2.2 汽车网络安全影响场景及评级示例 3.汽车网络安全渗透测试描述 3.1 参考法规 3.2 渗透测试内容 4.小结 1.汽车网络安全法规概述 近年来&#xff0c;汽车…

C语言每日一题(24)回文素数题解

BC158 [NOIP1999]回文数 题目描述 若一个数&#xff08;首位不为零&#xff09;从左向右读与从右向左读都一样&#xff0c;我们就将其称之为回文数。 例如&#xff1a;给定一个10进制数56&#xff0c;将56加65&#xff08;即把56从右向左读&#xff09;&#xff0c;得到121是…

科技创意赋能乡村文旅振兴

近日&#xff0c;由北京大学创意产业研究中心联合中国国际科技促进会新基建专委会共同主办的“科技创意赋能乡村振兴研讨会”在京举行&#xff0c;与会专家学者围绕“和美乡村共同富裕智慧文旅”主题进行深入探讨。北京大学创意产业研究中心副主任吕艺、国家文化和旅游公共服务…

【MongoDB】集群搭建实战 | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全认证

文章目录 MongoDB 集群架构副本集主节点选举原则搭建副本集主节点从节点仲裁节点 连接节点添加副本从节点添加仲裁者节点删除节点 副本集读写操作副本集中的方法 分片集群分片集群架构目标第一个副本集第二个副本集配置集初始化副本集路由集添加分片开启分片集合分片删除分片 安…

2023数学建模国赛C题赛后总结

今天国赛的成绩终于出来了&#xff0c;盼星星盼月亮的。之前面试的时候已经把我给推到国奖评委那里去了&#xff0c;可是好可惜&#xff0c;最终以很微小的劣势错失国二。只拿到了广西区的省一。我心里还是很遗憾的&#xff0c;我真的为此准备了很久&#xff0c;虽然当中也有着…

001、Nvidia Jetson Nano Developer KIT(b01)

之——镜像烧录 杂谈 Nvidia Jetson Nano Developer KIT&#xff08;b01&#xff0c;4G&#xff09;&#xff0c;系统配置全纪录&#xff0c;镜像烧录、系统安装、远程桌面安装、cuda与torch安装、pycharm、pycuda、tensorrt等等。 正文 1.开发板系统安装 1.1 开发板简介 Jet…

8、Python模块和包:导入模块、创建自己的模块和包

文章目录 Python模块和包:导入模块、创建自己的模块和包导入模块创建自己的模块创建包使用相对导入结论Python模块和包:导入模块、创建自己的模块和包 Python是一种功能强大的编程语言,它的模块和包系统是其强大功能的基石之一。在Python中,模块是包含Python定义和声明的文…

OpenSign 开源 PDF 电子签名解决方案

OpenSign 是一个开源文档电子签名解决方案&#xff0c;旨在为 DocuSign、PandaDoc、SignNow、Adobe Sign、Smartwaiver、SignRequest、HelloSign 和 Zoho Sign 等商业平台提供安全、可靠且免费的替代方案。 特性&#xff1a; 安全签名&#xff1a;利用最先进的加密算法来确保…

python df.apply()函数

DataFrame.apply(func, axis0, rawFalse, result_typeNone, args(), by_row‘compat’, kwargs) 沿df的轴应用函数 func:对每行或者每列应用的函数axis{0 or ‘index’, 1 or ‘columns’}, default 0 0是列&#xff0c;1是行 rawbool, default False result_type**{‘expand…

交货单过账/保存后增强点

增强点&#xff1a;交货单过账后的增强点->SE18->DELIVERY_PUBLISH 这个增强点是在VL02N修改/过账之后触发的 业务场景&#xff1a;需要在交货单过账之后自动开发票 sy-ucomm WABU_T "交货过账 "分子公司转采的单子需要同步开发票IF ( ( sy-tcode VL01N OR…