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 ...
随机推荐
- CF321E Ciel and Gondolas 【决策单调性dp】
题目链接 CF321E 题解 题意:将\(n\)个人分成\(K\)段,每段的人两两之间产生代价,求最小代价和 容易设\(f[k][i]\)表示前\(i\)个人分成\(k\)段的最小代价和 设\(val ...
- nth-of-type和nth-child
一.nth-of-type.nth-child :nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素. :nth-child(n) 选择器匹配属于其父元素的第 N ...
- 解题:HEOI 2016 求和
题面 我们需要知道这样一个东西(大概叫 斯特林公式?) $S(i,j)=\frac{1}{j!}\sum\limits_{k=0}^{j}(-1)^k C_j^k(j-k)^i$ 那么就是推啊 $=\ ...
- [CQOI2012] 交换棋子 (费用流)
$pdf\space solution$ link #include<iostream> #include<cstring> #include<cstdio> ...
- Linux系统时间函数
先来说说自己在做工程过程中的一些理解: 1, 输入time_t,输出tm格式的函数 loctaltime(time_t) / gmtime(time_t) 其中localtime会受时区和夏令时影响, ...
- linux命令总结之lsof命令
简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控 ...
- python基础之字符串格式化
python中字符串格式化有两种,一种是%,另一种是str中的format()功能. % 列举格式符 %s 字符串 %c 单个字符 %b 二进制整数 %d 十进制整数 %i ...
- K8S之Secret
目录 简介 创建secret 1.加密用户名密码 2.加密证书文件 使用secret 1.使用volume挂载方式 2.将secret用于env 简介 secret顾名思义,用于存储一些敏感的需要加密 ...
- kubernetes挂载ceph rbd和cephfs的方法
目录 k8s挂载Ceph RBD PV & PVC方式 创建secret 创建PV 创建PVC 创建deployment挂载PVC StorageClass方式 创建secret 创建Stor ...
- GoWeb_01:GoWeb基础之mac上mysql安装
Mac下的MySql安装与配置 1. 访问MySQL的官网 http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL Community Server”下方有一个 ...