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 ...
随机推荐
- 【CF183D】T-shirt(动态规划,贪心)
[CF183D]T-shirt(动态规划,贪心) 题面 洛谷 CodeForces 题解 \(O(n^2m)\)的暴力懒得写了,比较容易,可以自己想想. 做法是这样的,首先我们发现一个结论: 对于某个 ...
- 【poj1390】 Blocks
http://poj.org/problem?id=1390 (题目链接) 题意 给出一排方块,每次可以把颜色相同的消掉,获得长度的平方的分数,问最大得分. Solution 蜜汁dp.. 我们把颜色 ...
- 利用poi来向execl中写入对象
附上jar包下载链接: 附上百度网盘下载连接: 链接:https://pan.baidu.com/s/1t_jXUq3CuhZo9j_UI4URAQ 密码:r2qi package com.wz.po ...
- JAVA中properties基本用法
转载 源地址不详 java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式, ...
- D. Mahmoud and Ehab and the binary string Codeforces Round #435 (Div. 2)
http://codeforces.com/contest/862/problem/D 交互题 fflush(stdout) 调试: 先行给出结果,函数代替输入 #include <cstdio ...
- linux kill 掉所有匹配到名字的进程
如,要 kill 掉 swoole 相关的进程 ps aux | grep swoole | awk '{print $2}' | xargs kill -9 ps 列出所有进程, 参数: a - ...
- tar 命令显示进度条
实现该功能需要安装 pv,然后把需要处理的数据通过管道传给 pv,最后再进行操作. 传给 pv 的目的是为了知道已经处理的数据量大小,同时需要通过 -s 指定总共需要处理的数据量大小. pv 的安装一 ...
- jsp中jsp:forward 与 redirect区别
部分转载:http://hi.baidu.com/168zlf/item/2f4b2ad4351b881c20e2500c 在网上看到一些帖子,总结了一些区别,可以从以下几个方面来看: 1.从地址栏显 ...
- 2 Kafka Broker
Log的读写.删除流程---日志管理器(log manager)负责创建日志.获取日志.清理日志.所有的日志读写操作都交给具体的日志实例来完成. KafkaServer启动的时候,初始化三个类: Lo ...
- 单进程单线程的Redis如何能够高并发
redis快的原因: 1.纯内存操作2.异步非阻塞 IO 参考文档: (1)http://yaocoder.blog.51cto.com/2668309/888374 (2)http://www.cn ...