shell函数-页面跳转练习->
实现思维导图->

实现思路->
分析:
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函数-页面跳转练习->的更多相关文章
- [ExtJS5学习笔记]第二十五节 利用window.open()函数实现ExtJS5的登陆页面跳转
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40427543 mvvm方式实现登陆的博客:http://blog.csdn.net/s ...
- js_倒计时去执行函数或则跳转页面
js_倒计时去执行函数或则跳转页面: var wait = 5; $(document).ready(function () { returnPage(); }); function returnPa ...
- 自定义PHP页面跳转函数redirect($url, $time = 0, $msg = '')
利用PHP的header()函数,可以实现页面跳转,如 header("Location: " . $url); 但它有个缺点,一旦HTTP报头块已经发送,就不能使用 header ...
- web设计页面跳转的方法
一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx"); 2. 利用url地址打 ...
- web页面跳转的几种方式
可用客户端触发或服务端触发的方式来实现页面跳转. 客户端触发 方式一:使用Javascript 利用window.location对象的href属性.assign()方法或replace()方法来实现 ...
- PHP 页面跳转方法
1.php header()函数跳转 PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是302重定向: $url = ...
- PHP页面跳转
PHP页面跳转一.header()函数 header()函数是PHP中进行页面跳转的一种十分简单的方法.header()函数的主要功能是将HTTP协议标头(header)输出到浏览器. header( ...
- jquerymobile页面跳转和参数传递
http://blog.csdn.net/chen052210123/article/details/7481578 页面跳转: 页面跳转时pagebeforechange事件会被触发两次,通过$(d ...
- form表单只提交数据而不进行页面跳转的解决方案
一般的form提交操作写法为 代码如下: <form action="saveReport.htm" method="post"> …… <i ...
随机推荐
- 【模板】ISAP最大流
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...
- listview android:cacheColorHint,android:listSelector属性作用(转)
ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉, 原因是,滚动时,列表里面的view重绘时,用的依 ...
- 解题:ZJOI 2013 K大数查询
题面 树套树,权值线段树套序列线段树,每次在在权值线段树上的每棵子树上做区间加,查询的时候左右子树二分 本来想两个都动态开点的,这样能体现树套树在线的优越性.但是常数太大惹,所以外层直接固定建树了QA ...
- php 中 envoy 的使用方法
相关文档:中文文档.英文文档 envoy 是什么? envoy 是一个支持 blade 语法的 ssh 远程命令执行的工具.具体来说就是,通过配置 ssh 的账号.密码.key 这些,然后可以使用 e ...
- sidecar学习
1.SideCar的出现 微服务的结构是细粒度的,由多个服务构成,支持不同的服务用不同的语言来编写,比如a服务用python,b服务用java,C服务用php等,我们称为异构语言,那么在利用zuul来 ...
- 关于.Net开源并跨平台的思考
开源的意义: 关于开源,我个人觉得有两个提高(勿喷). 一方面开源提高了生产力,另一方面开源也是信任的一种体现.为什么这么说呢,在当下的互联网时代,开源是一种核心价值观.人与人沟通交流合作之下,降低成 ...
- P3275 [SCOI2011]糖果 && 差分约束(二)
学习完了差分约束是否有解, 现在我们学习求解最大解和最小解 首先我们回想一下是否有解的求解过程, 不难发现最后跑出来任意两点的最短路关系即为这两元素的最短路关系. 即: 最后的最短路蕴含了所有元素之间 ...
- Hadoop生态圈-phoenix(HBase)的索引配置
Hadoop生态圈-phoenix(HBase)的索引配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 创建索引是为了优化查询,我们可以在phoenix上配置索引方式. 一.修改 ...
- Java基础-Collection子接口之Set接口
Java基础-Collection子接口之Set接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 学习Collection接口时,记得Collection中可以存放重复元素,也可 ...
- Spring 手动提交事务
在使用Spring声明式事务时,不需要手动的开启事务和关闭事务,但是对于一些场景则需要开发人员手动的提交事务,比如说一个操作中需要处理大量的数据库更改,可以将大量的数据库更改分批的提交,又比如一次事务 ...