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 ...
随机推荐
- oracle 存储过程创建报错 Procedure created with compilation errors
出现这错误的话,存储过程还是会成功创建的,创建好后再逐个打开查找存储过程的问题 问题:基本上就是存储过程里面的表不存在,dblink 不存在 ,用户名.xx表 要么用户名不存在要么表不存在 创 ...
- HBase介绍及简易安装
HBase简介 HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问,是Google的BigTable的开源实现.HBase的目标是存储并处理大型的数据,更具体地说仅 ...
- 学习Spring Boot:(九)统一异常处理
前言 开发的时候,每个controller的接口都需要进行捕捉异常的处理,以前有的是用切面做的,但是SpringMVC中就自带了@ControllerAdvice ,用来定义统一异常处理类,在 Spr ...
- 解题:POI 2007 Tourist Attractions
题面 事实上这份代码在洛谷过不去,因为好像要用到一些压缩空间的技巧,我并不想(hui)写(捂脸) 先预处理$1$到$k+1$这些点之间相互的最短路和它们到终点的最短路,并记录下每个点能够转移到时的状态 ...
- UESTC--1468
题目:A Coin Problem 原题链接:http://acm.uestc.edu.cn/problem.php?pid=1468 分析:满足裴波纳契数列,打表找周期. #include<i ...
- bzoj 2002
2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 12203 Solved: 6162[Subm ...
- 一次ajax请求导致status为canceled的原因小记
偶然碰到一个小Bug ajax请求执行后返回了一个canceled(状态码) 但是后台却接受了参数并且执行成功0.0 刚看到这个状态的时候是一脸懵逼的.... 之前并没见过这样的状态码 经过参数确认并 ...
- arcgis求邻接矩阵
求邻接矩阵 教程链接 http://m.blog.csdn.net/wan_yanyan528/article/details/49175673 (1) 将目标shp文件导出一份副本备用(以省级为 ...
- shell实例浅谈之一产生随机数七种方法
一.问题 Shell下有时需要使用随机数,在此总结产生随机数的方法.计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数).伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产 ...
- Xcode关闭警告
对于关闭某个警告,如果需要全局关闭的话,直接在Other C Flags里写 -Wno-...就行了,比如 -Wextra -Wno-sign-compare 就是一个常见的组合.如果相对某几个文件开 ...