Zaratustra 2018-09-20
函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。
格式:
格式:
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
数组:一串字符创或者一串数字,形成的一个变量,把这个变量叫做数组,可针对数组某些元素进行操作
定义数组: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程序来实现,它可以定义发邮件的服务器、发邮件人以及发件人密码
输出日志:整个监控系统要有日志输出
要求:我们的机器角色多种多样,但是所有机器上都要部署同样的监控系统,也就说所有机器不管什么角色,整个程序框架都是一致的,不同的地方在于根据不同的角色,定制不同的配置文件