高级脚本进阶—使用case的多功能选择性脚本

应用场景:

  在应用脚本决解实际的运维问题时,单功能脚本有很多的不同应用环境,如不同的运行环境,不同的系统版本等,这时,就需要对脚本的功能进行选择,一个脚本实现多功能多版本系统的维护,以减少沟通成本,而减少工作与沟通的复杂度是实际的工作中很有必要的,介绍一个简单的实现小框架,使用case流分离工具进行功能分离:

#!/bin/bashTitle=
oneSubtitle=
twoSubtitle=
threeSubtitle=
fourSubtitle=
fiveSubtitle=
sixSubtitle=
sevenSubtitle=
echo
cat <<EOF
        DATE : `date +%Y-%m-%d-%T`
        ==========================================
            $Title
        ==========================================
        **     1)$oneSubtitle                  **
        **      2)$twoSubtitle                  **
        **     3)$threeSubtitle                **
        **      4)$fourSubtitle                 **
        **      5)$fiveSubtitle                 **
        **      6)$sixSubtitle                  **
        **      7)$sevenSubtitle                **
        ==========================================
EOF
read -p "Please choose [1-7]:" num
case $num in
    1)
    function1
    ;;
    2)
    function2
    ;;
        3)
        function3
        ;;
        4)
        function4
        ;;
        5)
        function5
        ;;
        6)
        function6
        ;;
        7)
        function7
        ;;
    *)
    clear
    ./$0
    ;;
esac

如上所示,小框架进行了七种不同场景的分离。

小结:

 而在实际的应用脚本时,需要注意的有以下几点:

1.功能与功能之间的交叉。

2.根据实际的情况,选择不同的方式来进行。

3.考虑应用场景时,要考虑各种系统环境,提升代码的健壮性。

4.对相应命令的执行结果,不要一味的输入到/dev/null下,这样会错失很多的信息。

5.多测试,以实现功能的完备。

原文地址:https://www.cnblogs.com/xiaoyuxixi/p/11409966.html

时间: 2024-11-05 23:34:38

高级脚本进阶—使用case的多功能选择性脚本的相关文章

bash脚本编程之case语句及脚本选项进阶

case语句及脚本选项进阶详解     面向过程程序设计语言中的控制流(即程序当中的语句)默认是顺序执行的. 程序设计语言的控制结构一共有三类: 1,顺序结构 2,选择结构 (1)if语句 ->单分支的if语句 格式:if condition1;then expression ... fi ->双分支的if语句 格式:if condition1;then expression ... else expression ... fi ->多分支的if语句 格式:if condition1;t

shell脚本进阶一(for,while,continue,break,select等等)

脚本进阶一 一.for循环的第二种写法: 众所周知,for有两种写法 第一种:for i in k8s-node{1..3};do setenforce 0;done 第二种写法:C语言风格 直接写怎么用: #for后必须写两个括号,又称双小括号写法 [[email protected] ~]# cat for_2.sh #!/bin/bash for ((i=1,sum=0;i<=100;i++));do let sum+=i done echo "sum=${sum}" [[

shell脚本进阶(一)

一.逻辑运算 变量: 本地变量.环境变量.局部变量.位置参数变量.特殊变量 变量赋值:name=value,export name=value,declare -x name=value 变量引用:$name,${name} 注意:有些时候{}不能省略,例如 echo "$valuemagedu.com" echo "${value}magedu.com" 撤销:unset name bash脚本编程,运行脚本 #!/bin/bash      #称为shebang

LoadRunner测试下载功能点脚本(方法一)

性能需求:对系统某页面中,点击下载功能做并发测试,以获取在并发下载文件的情况下系统的性能指标. 备注:页面上点击下载时的文件可以是word.excel.pdf等. 问题1:录制完下载的场景后,发现脚本里面并没有包含下载的脚本或url? 解决步骤: 1.  在IE浏览器上打开需要测试功点的页面,点击下载链接前启用httpWatch录制下载功能点,然后查看Stream下面服务器返回的响应信息,一个HTTP响应代表服务器向客户端回送的数据,它包括: 一个状态行.若干消息头.以及实体内容 ,其中的一些消

shell脚本进阶篇(上)

shell脚本是我们学习运维的难点,本篇内容简单举例shell脚本的进阶上篇,有任何技术上的指导,知识上的不足都欢迎指出点明. 流程控制 过程式编程语言: 顺序执行   选择执行  循环执行 条件选择if语句 ? 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3;

高级java进阶之类的卸载

首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息.常量.静态变量以及方法代码的内存区域,叫做方法区. 常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息. 堆区:用于存放类的对象实例. 栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量.方法出口等信息.当调用一个方法时,虚拟机栈中就会创建一个栈帧存放这些数据,当方法调用完成时,栈帧消失,如果

LoadRunner测试下载功能点脚本(方法二)

在上一篇<LoadRunner下载功能点脚本(方法一)>中,实现的脚本仅是录制下载功能点的脚本,现在性能需求的场景更改如下: 性能需求:对系统某页面中,点击下载并将下载文件保存到本地电脑的功能做并发测试,以获取在并发下载文件的情况下系统的性能指标. 我们知道,LoadRunner录制的脚本是根据协议启用代理模拟浏览器发送请求,记录对服务器响应的相关数据,因此,保存下载文件需要手动编写代码插入在下载脚本前后. 代码如下: download() { //文件大小 int flen; //响应数据内

系统日志监控脚本,程序关闭和启动功能

系统日志监控脚本,程序关闭和启动功能 最近由于工作原因写了一个关于系统日志监控脚本,监控到某些信息后,脚本中进行程序关闭和启动的功能. 详细内容如下: #!/bin/sh #current date time DATE=`date "+%Y%m%d"` #log file path and name LOGFILE="log/porgram.log.$DATE" #program name PROGRAM="porgram" #program s

性味归经与功能的脚本——3元素

# -*- coding: utf-8 -*- """ Created on Thu Aug 25 10:06:52 2016 审核性味归经与功能的脚本 @author: Administrator """ import xlrd,csv import list_xwgj_function,chi_square,list_xwgj_function_multiElements #三元素组合[寒,苦,肝] thelist_xwgj_function