shell函数-页面跳转练习->

实现思维导图->

实现思路->

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

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

  1 #!/usr/bin/bash
  2 
  3 Page_first () {
  4 cat << EOF
  5 ================
  6 1. 安装Nginx
  7 6. 退出
  8 ================
  9 EOF
 10 }
 11 
 12 Page_Nginx () {
 13 cat << EOF
 14 ================
 15 1. 安装Nginx 1.12
 16 2. 源码编译Nginx 1.12
 17 3. 返回上一个页面
 18 4. 退出
 19 ================
 20 EOF
 21 }
 22 
 23 Page_Nginx_Install () {
 24 cat << EOF
 25 ================
 26 1. 配置yum仓库
 27 2. 安装Nginx
 28 3. 启动Nginx
 29 4. 返回上一个月面
 30 5. 退出
 31 ================
 32 EOF
 33 }
 34 
 35 
 36 Page_Nginx_Install_make () {
 37 cat << EOF
 38 ================
 39 1. 准备基础环境,安装依赖包
 40 2. 下载Nginx编译包
 41 3. ./configure
 42 4. make
 43 5. make install
 44 6. 启动
 45 7. 返回上级菜单
 46 8. 退出
 47 ================
 48 EOF
 49 }
 50 
 51 
 52 while true
 53 do
 54 clear
 55 Page_first
 56 read -p "请选择需要安装的编号:" First_page
 57 case $First_page in
 58         1)
 59             clear
 60             while true
 61             do
 62             Page_Nginx
 63             read -p "请选择安装方式:" Nginx_page
 64             case $Nginx_page in
 65                     1)
 66                         clear
 67                         while true
 68                         do
 69                         Page_Nginx_Install
 70                         read -p "请输入进行的步骤:" Nginx_Install
 71                         case $Nginx_Install in
 72                             1)
 73                                 clear
 74                                 if [ -f /etc/yum.repos.d/nginx.repo ];then
 75                                     echo "yum仓库已有,无需进行配置"
 76                                 else
 77                                     cat >/etc/yum.repos.d/nginx.repo <<EOF
 78 [nginx]
 79 name=nginx repo
 80 baseurl=http://nginx.org/pacs/centos/7/x86_64/
 81 gpgcheck=0
 82 enabled=1
 83 EOF
 84                                     echo "Nginx的yum仓库配置完成"
 85                                 fi
 86                                 ;;
 87                             2)
 88                                 clear
 89                                 nginx -v &>/dev/null
 90                                 if [ $? -eq 0 ];then
 91                                     echo "Nginx已安装,无需进行安装"
 92                                 else
 93                                     echo "正在安装Nginx"
 94                                     yum -y install nginx &>/dev/null
 95                                     if [ $? -ne 0 ];then
 96                                         echo "Nginx安装失败,请查找原因"
 97                                     else
 98                                         echo "Nginx安装成功"
 99                                     fi
100                                 fi
101                                 ;;
102                             3)
103                                 clear
104                                 nginx_status=$(systemctl status nginx 2>/dev/null |grep running |wc -l)
105                                 if [ $nginx_status -eq 1 ];then
106                                     echo "Nginx已启动,无需启动"
107                                 else
108                                     systemctl start nginx  &>/dev/null
109                                     if [ $? -ne 0 ];then
110                                         echo "Nginx启动失败,请查找原因"
111                                     else
112                                         echo "Nginx启动成功"
113                                     fi
114                                 fi
115                                 ;;
116                             4)
117                                 clear
118                                 break
119                                 ;;
120                             5)
121                                 exit
122                                 ;;
123                             *)
124                                 clear
125                                 echo "输入错误,请重新输入"
126                         esac
127                         done                            
128                         ;;
129                     2)
130                         clear
131                         while true
132                         do
133                         Page_Nginx_Install_make
134                         read -p "请输入进行的步骤:" Nginx_make
135                         case $Nginx_make in
136                             1)
137                                 clear
138                                 echo "正在准备基础环境"
139                                 id www &>/dev/null 
140                                 if [ $? -eq 0 ];then
141                                     echo "基础环境准备完成"
142                                 else
143                                     groupadd -g 666 www && useradd -u 666 -g www www -s /sbin/nologin -M
144                                     if [ $? -ne 0 ];then
145                                         echo "基础环境准备失败"
146                                     else
147                                         echo "基础环境准备完成"
148                                     fi                                    
149                                 fi
150                                 echo "正在安装依赖包"
151                                 yum install wget gcc make  pcre-devel  openssl-devel zlib-devel -y &>/dev/null
152                                 if [ $? -ne 0 ];then
153                                     echo "依赖包安装失败,请查找原因"
154                                 else
155                                     echo "依赖包安装成功"
156                                 fi
157                                 ;;
158                             2)
159                                 clear
160                                 echo "正在下载Nginx"
161                                 [ -d /server/tools ] || mkdir /server/tools -p
162                                 cd /server/tools
163                                 wget http://nginx.org/download/nginx-1.14.0.tar.gz &>/dev/null && 
164                                 tar xf nginx-1.14.0.tar.gz &>/dev/null && 
165                                 cd nginx-1.14.0
166                                 if [ $? -ne 0 ];then
167                                     echo "Nginx下载或解压失败,请查看原因"
168                                 else
169                                     echo "Nginx下载成功"
170                                 fi
171                                 ;;
172                             3)
173                                 clear
174                                 echo "正在执行./configure"
175                                 ./configure --prefix=/application/nginx-1.14 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module &>/dev/null
176                                 if [ $? -ne 0 ];then
177                                     echo "Nginx执行./configure失败,请查看原因"
178                                 else
179                                     echo "Nginx执行./configure成功"
180                                 fi
181                                 ;;
182                             4)        
183                                 clear
184                                 echo "正在执行make"
185                                 make &>/dev/null
186                                 if [ $? -ne 0 ];then
187                                     echo "Nginx执行make失败,请查看原因"
188                                 else
189                                     echo "Nginx执行make成功"
190                                 fi
191                                 ;;
192                             5)        
193                                 clear
194                                 echo "正在执行make install"
195                                 make install &>/dev/null
196                                 if [ $? -ne 0 ];then
197                                     echo "Nginx执行make install失败,请查看原因"
198                                 else
199                                     echo "Nginx执行make install成功"
200                                 fi
201                                 ;;
202                             6)
203                                 
204                                 ;;
205                             7)
206                                 clear
207                                 break
208                                 ;;
209                             8)
210                                 exit
211                                 ;;
212                             *)
213                                 clear
214                                 echo "输入错误,请重新输入"
215                         esac
216                         done                            
217                         ;;                                    
218                     3)
219                         clear
220                         break
221                         ;;
222                     4)
223                         exit
224                         ;;
225                     *)
226                         clear
227                         echo "输入错误,请重新输入"
228                 esac
229                 done
230             ;;
231         6)
232             exit
233             ;;
234         *)
235             clear
236             echo "输入错误,请重新输入"
237     esac
238 done
原文地址:https://www.cnblogs.com/tim1blog/p/9698697.html