admin管理员组

文章数量:1635372

 

  1. 案例1:基于case分支编写脚本
  2. 案例2:编写一键部署软件脚本
  3. 案例3:启动脚本
  4. 案例4:使用Shell函数
  5. 案例5:中断及退出
  6. 案例6:字符串截取及切割
  7. 案例7:字符串初值的处理

1 案例1:基于case分支编写脚本

1.1 问题

本案例要求编写test.sh脚本,相关要求如下:

  • 能使用redhat、fedora控制参数
  • 控制参数通过位置变量$1传入
  • 当用户输入redhat参数,脚本返回fedora
  • 当用户输入fedora参数,脚本返回redhat
  • 当用户输入其他参数,则提示错误信息

1.2 方案

case分支属于匹配执行的方式,它针对指定的变量预先设置一个可能的取值,判断该变量的实际取值是否与预设的某一个值相匹配,如果匹配上了,就执行相应的一组操作,如果没有任何值能够匹配,就执行预先设置的默认操作。

case分支的语法结构如下所示:

 
  1. case 变量 in
  2. 模式1)
  3. 命令序列1 ;;
  4. 模式2)
  5. 命令序列2 ;;
  6. .. ..
  7. *)
  8. 默认命令序列
  9. esac

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:编写脚本文件

脚本编写参考如下:

 
  1. [root@svr5 ~]# vim test.sh
  2. #!/bin/bash
  3. case $1 in
  4. redhat)
  5.         echo "fedora";;
  6. fedora)
  7.         echo "redhat";;
  8.     *)                                             //默认输出脚本用法
  9. echo "用法: $0 {redhat|fedora}"
  10. esac
  11.  
  12. [root@svr5 ~]# chmod +x test.sh

步骤三:验证、测试脚本

未提供参数,或提供的参数无法识别时,提示正确用法:

 
  1. [root@svr5 ~]# ./test.sh
  2. 用法: ./test.sh {redhat|fedora}

确认脚本可以响应redhat控制参数:

 
  1. [root@svr5 ~]# ./test.sh redhat
  2. fedora

确认脚本可以响应fedora控制参数:

 
  1. [root@svr5 ~]# ./test.sh fedora
  2. redhat

2 案例2:编写一键部署软件脚本

2.1 问题

本案例要求编写脚本实现一键部署Nginx软件(Web服务器):

  • 一键源码安装Nginx软件
  • 脚本自动安装相关软件的依赖包

2.2 步骤

实现此案例需要按照如下步骤进行。

1)依赖包

源码安装Nginx需要提前安装依赖包软件gcc,openssl-devel,pcre-devel

步骤一:编写脚本

1)参考脚本内容如下:

 
  1. [root@svr5 ~]# vim test.sh
  2. #!/bin/bash
  3. yum -y install gcc openssl-devel pcre-devel
  4. tar -xf nginx-1.12.2.tar.gz
  5. cd nginx-1.12.2
  6. ./configure
  7. make
  8. make install

2)确认安装效果

Nginx默认安装路径为/usr/local/nginx,该目录下会提供4个子目录,分别如下:

/usr/local/nginx/conf 配置文件目录

/usr/local/nginx/html 网站页面目录

/usr/local/nginx/logs Nginx日志目录

/usr

本文标签: 脚本字符串初值一键分支