shell中的函数-shell中的数组-告警系统需求分析

Zaratustra 2018-09-20

shell中的函数:

函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。

格式:

格式:

function 函数名称() {

command

}

#function此单词可省略,函数定义必须在脚本前面,后面调用函数直接写函数名即可

例子1:

#!/bin/bash
#显示参数
function inp(){
 echo $1 $2 $3 $0 $#
}
inp $1 $2 $3

结果:

# sh -x 09.sh a b c
+ inp a b c
+ echo a b c 1.sh 3
a b c 1.sh 3

例子2:

#!/bin/bash
#求和
sum (){
 s=$[$1+$2]
 echo $s 
}
sum 1 2

结果:

# sh -x sum.sh
+ sum 1 2
+ s=3
+ echo 3
3

例子3:

#!/bin/bash
#输入网卡名称,输出对应IP地址
ip (){
 ifconfig|grep -A1 "$1: " |tail -1|awk '{print $2}'
}
 read -p "please in put network name: " eth
 ip $eth

shell中的数组:

数组:一串字符创或者一串数字,形成的一个变量,把这个变量叫做数组,可针对数组某些元素进行操作

定义数组:a=(1 2 3 4 b ); echo ${a[@]}

获取数组元素的个数:echo ${#b[@]}

获取数组第5个元素:echo ${b[4]} #数组从0开始

显示整个数组:echo ${b[@]} 或echo ${b[*]}

数组赋值:

a[1]=100;echo ${a[@]} #显示1 100 3 4 b

a[5]=2;echo ${a[@]} #显示1 100 3 4 b 2 若下标在数组中没定义,则自动添加

数组删除:

uset a

数组元素删除:

unset a[1]

数组分片:

定义数组:a=(`seq 1 10`)

echo ${a[@]:0:3} #从第一个元素开始,截取3个

echo ${a[@]:1:4} #从第二个元素开始,截取4个

echo ${a[@]:0-3:2} #从倒数第三个元素开始,截取2个

数组替换:

echo ${a[@]/3/100}

a=(${a[@]/3/100})

告警系统需求分析:

需求:使用shell定制各种个性化告警工具,但需要统一化管理、规范化管理

思路:指定一个脚本包,包含主程序、子程序、配置文件、邮件引擎、输出日志等

主程序:作为整个脚本的入口,是整个系统的命脉

配置文件:是一个控制中心,用它来开关各个子程序,指定各个相关联的日志文件

子程序:这个才是真正的监控脚本,用来监控各个指标

邮件引擎:是由一个python程序来实现,它可以定义发邮件的服务器、发邮件人以及发件人密码

输出日志:整个监控系统要有日志输出

要求:我们的机器角色多种多样,但是所有机器上都要部署同样的监控系统,也就说所有机器不管什么角色,整个程序框架都是一致的,不同的地方在于根据不同的角色,定制不同的配置文件

shell中的函数-shell中的数组-告警系统需求分析

相关推荐