实现思维导图->

实现思路->

分析:
1:先把三个页面的流程作为函数先写下来,定义在脚本的开头,方便下面的调用。
2:先从一个流 程开始做,其他的流程类似,比如nginx
3:整体实现思路是 ,函数调用 , while do 循环, case in

实现脚本->(仅作为参考练习)

 #!/usr/bin/bash

 Page_first () {
cat << EOF
================
. 安装Nginx
. 退出
================
EOF
} Page_Nginx () {
cat << EOF
================
. 安装Nginx 1.12
. 源码编译Nginx 1.12
. 返回上一个页面
. 退出
================
EOF
} Page_Nginx_Install () {
cat << EOF
================
. 配置yum仓库
. 安装Nginx
. 启动Nginx
. 返回上一个月面
. 退出
================
EOF
} Page_Nginx_Install_make () {
cat << EOF
================
. 准备基础环境,安装依赖包
. 下载Nginx编译包
. ./configure
. make
. make install
. 启动
. 返回上级菜单
. 退出
================
EOF
} while true
do
clear
Page_first
read -p "请选择需要安装的编号:" First_page
case $First_page in
)
clear
while true
do
Page_Nginx
read -p "请选择安装方式:" Nginx_page
case $Nginx_page in
)
clear
while true
do
Page_Nginx_Install
read -p "请输入进行的步骤:" Nginx_Install
case $Nginx_Install in
)
clear
if [ -f /etc/yum.repos.d/nginx.repo ];then
echo "yum仓库已有,无需进行配置"
else
cat >/etc/yum.repos.d/nginx.repo <<EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/pacs/centos/7/x86_64/
gpgcheck=
enabled=
EOF
echo "Nginx的yum仓库配置完成"
fi
;;
)
clear
nginx -v &>/dev/null
if [ $? -eq ];then
echo "Nginx已安装,无需进行安装"
else
echo "正在安装Nginx"
yum -y install nginx &>/dev/null
if [ $? -ne ];then
echo "Nginx安装失败,请查找原因"
else
echo "Nginx安装成功"
fi
fi
;;
)
clear
nginx_status=$(systemctl status nginx >/dev/null |grep running |wc -l)
if [ $nginx_status -eq ];then
echo "Nginx已启动,无需启动"
else
systemctl start nginx &>/dev/null
if [ $? -ne ];then
echo "Nginx启动失败,请查找原因"
else
echo "Nginx启动成功"
fi
fi
;;
)
clear
break
;;
)
exit
;;
*)
clear
echo "输入错误,请重新输入"
esac
done
;;
)
clear
while true
do
Page_Nginx_Install_make
read -p "请输入进行的步骤:" Nginx_make
case $Nginx_make in
)
clear
echo "正在准备基础环境"
id www &>/dev/null
if [ $? -eq ];then
echo "基础环境准备完成"
else
groupadd -g www && useradd -u -g www www -s /sbin/nologin -M
if [ $? -ne ];then
echo "基础环境准备失败"
else
echo "基础环境准备完成"
fi
fi
echo "正在安装依赖包"
yum install wget gcc make pcre-devel openssl-devel zlib-devel -y &>/dev/null
if [ $? -ne ];then
echo "依赖包安装失败,请查找原因"
else
echo "依赖包安装成功"
fi
;;
)
clear
echo "正在下载Nginx"
[ -d /server/tools ] || mkdir /server/tools -p
cd /server/tools
wget http://nginx.org/download/nginx-1.14.0.tar.gz &>/dev/null && \
tar xf nginx-1.14..tar.gz &>/dev/null && \
cd nginx-1.14.
if [ $? -ne ];then
echo "Nginx下载或解压失败,请查看原因"
else
echo "Nginx下载成功"
fi
;;
)
clear
echo "正在执行./configure"
./configure --prefix=/application/nginx-1.14 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module &>/dev/null
if [ $? -ne ];then
echo "Nginx执行./configure失败,请查看原因"
else
echo "Nginx执行./configure成功"
fi
;;
)
clear
echo "正在执行make"
make &>/dev/null
if [ $? -ne ];then
echo "Nginx执行make失败,请查看原因"
else
echo "Nginx执行make成功"
fi
;;
)
clear
echo "正在执行make install"
make install &>/dev/null
if [ $? -ne ];then
echo "Nginx执行make install失败,请查看原因"
else
echo "Nginx执行make install成功"
fi
;;
) ;;
)
clear
break
;;
)
exit
;;
*)
clear
echo "输入错误,请重新输入"
esac
done
;;
)
clear
break
;;
)
exit
;;
*)
clear
echo "输入错误,请重新输入"
esac
done
;;
)
exit
;;
*)
clear
echo "输入错误,请重新输入"
esac
done

shell函数-页面跳转练习->的更多相关文章

  1. [ExtJS5学习笔记]第二十五节 利用window.open()函数实现ExtJS5的登陆页面跳转

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/40427543 mvvm方式实现登陆的博客:http://blog.csdn.net/s ...

  2. js_倒计时去执行函数或则跳转页面

    js_倒计时去执行函数或则跳转页面: var wait = 5; $(document).ready(function () { returnPage(); }); function returnPa ...

  3. 自定义PHP页面跳转函数redirect($url, $time = 0, $msg = '')

    利用PHP的header()函数,可以实现页面跳转,如 header("Location: " . $url); 但它有个缺点,一旦HTTP报头块已经发送,就不能使用 header ...

  4. web设计页面跳转的方法

    一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx"); 2. 利用url地址打 ...

  5. web页面跳转的几种方式

    可用客户端触发或服务端触发的方式来实现页面跳转. 客户端触发 方式一:使用Javascript 利用window.location对象的href属性.assign()方法或replace()方法来实现 ...

  6. PHP 页面跳转方法

    1.php header()函数跳转 PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是302重定向: $url = ...

  7. PHP页面跳转

    PHP页面跳转一.header()函数 header()函数是PHP中进行页面跳转的一种十分简单的方法.header()函数的主要功能是将HTTP协议标头(header)输出到浏览器. header( ...

  8. jquerymobile页面跳转和参数传递

    http://blog.csdn.net/chen052210123/article/details/7481578 页面跳转: 页面跳转时pagebeforechange事件会被触发两次,通过$(d ...

  9. form表单只提交数据而不进行页面跳转的解决方案

    一般的form提交操作写法为 代码如下: <form action="saveReport.htm" method="post"> …… <i ...

随机推荐

  1. redis协议

    Redis的通讯协议可以说大集汇了……消息头标识,消息行还有就行里可能还有个数据块大小描述.首先Redis是以行来划分,每行以\r\n行结束.每一行都有一个消息头,消息头共分为5种分别如下: (+) ...

  2. APK反编译之一:基础知识—APK、Dalvik字节码和smali文件

    refs: APK反编译之一:基础知识http://blog.csdn.net/lpohvbe/article/details/7981386 APK反编译之二:工具介绍http://blog.csd ...

  3. 由支付宝当面付引发的NatApp方便调试回调

    http://blog.csdn.net/xunxianren007/article/details/54954520 这篇文章写的很好,很详细. 回调理解: 所谓回调:就是A类中调用B类中的某个方法 ...

  4. web项目中的执行流程参数传递详解

    还是从这个图开始讲解: struts2中有一个存放数据的中心:值栈.(值栈里面有map和对象栈) 首先:值栈的作用范围是一个请求:request作用域(一个请求是代表的一个过程,即页面点击到数据返回到 ...

  5. ACF/PACF,残差白噪声的检验问题

    关于自相关.偏自相关: 一.自协方差和自相关系数       p阶自回归AR(p)       自协方差 r(t,s)=E[X(t)-EX(t)][X(s)-EX(s)]       自相关系数ACF ...

  6. Jenkins+Maven+SVN

    准备环境: CentOS7 JDK1.7.9.0_79 Maven3.3.9 Jenkins2.5.0 1.配置jdk环境变量 2.安装maven(否则在创建job时没有maven选项) unzip ...

  7. GO_07:GO语言基础之method

    方法 method 1. Go 中虽没有 class,但依旧有 method 2. 通过显示说明 receiver 来实现与某个类型的组合 3. 只能为同一个包中的类型定义方法 4. Receiver ...

  8. Solr常用命令总结

    前提条件: 安装solr版本:4.8.0 部署solr路径:/data/solr-4.8.0 1. 通过zookeeper上传一些配置信息: 通过zk命令将配置信息上传到zk环境中: /data/so ...

  9. [spark]-Spark2.x集群搭建与参数详解

    在前面的Spark发展历程和基本概念中介绍了Spark的一些基本概念,熟悉了这些基本概念对于集群的搭建是很有必要的.我们可以了解到每个参数配置的作用是什么.这里将详细介绍Spark集群搭建以及xml参 ...

  10. UIViewController的初始化

    UIViewController的初始化一般有两个: -(instancetype)init; -(instancetype)initWithNibName:(NSString *)nibNameOr ...