7月16日任务 shell中的函数 、shell中的数组、告警系统需求分析

 

20.16 shell中的函数

函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字便可。
格式: function f_name() {
                      command
             }python

事例1:函数必须放在最前面shell

#!/bin/bash
function inp(){
echo "The first par $1"
echo "The second par $2"
echo "The third par $3"
}
inp 1 2

输出结果:数组

The first par 1
The second par 2
The third par

事例2:运算加减bash

#!/bin/bash
function sum (){
s=$[$1+$2]
echo $S
}
sum 1 10

运算过程:服务器

+ sum 1 10
+ s=11
+ echo 11
11

事例3 :查看ip地址函数

#!/bin/bash
ip(){
ifconfig |grep -A1 "eth0" |awk '/inet/ {print $2}'
}
read -p "please input the eth name:" eth
ip $eth
  1. #ifconfig 查询IP地址工具

  2. #grep -A1 "$1" 查询第一段spa

  3. #awk '/inet/ '{print $2}' 查找inet字符列出后打印第二列(即IP地址)日志

  4. #read -P 把use当成read的变量.用户输出code

运行结果:

[root@izbp1chwdyqnsfzoolyx2yz lxy]# sh -x ip.sh 
+ read -p 'please input the eth name: ' use
please input the eth name: eth0
+ ip eth0
+ grep -A1 eth0
+ awk '/inet/ {print $2}'
+ ifconfig
172.16.15.246

 20.18 shell中的数组

定义数组:

b=(1 2 3)

echo ${b[@]}

echo ${b[*]}  

 

数组赋值和查询:

数组查询:是从下标0开始

echo ${b[0]}   

echo ${#b[@]}     // 获取数组的个数

数组赋值:

b[3]=a

echo ${b[*]}

数组删除:

unset b[3]

截取数组和替换:

a=(`seq 1 10`)

截取从3开始 4个数

echo  ${a[@]:3:4}

截图倒数第3个数开始2个数

echo ${a[@]:0-3:2}

[root@izbp1chwdyqnsfzoolyx2yz lxy]# a=(`seq 1 10`)
[root@izbp1chwdyqnsfzoolyx2yz lxy]# echo ${a[@]:3:4}
4 5 6 7
[root@izbp1chwdyqnsfzoolyx2yz lxy]# echo ${a[@]:0-3:4}
8 9 10
[root@izbp1chwdyqnsfzoolyx2yz lxy]# echo ${a[@]:0-3:2}
8 9

替换:

echo ${a[@]/3/100}      //将3改为100

a=(${a[@]/8/99})        //将8改为99

20.19 告警系统需求分析

需求:使用shell定制各类个性化告警工具,但须要统一化管理、规范化管理。  思路:指定一个脚本包,包含主程序、子程序、配置文件、邮件引擎、输出日志等。  主程序:做为整个脚本的入口,是整个系统的命脉。  配置文件:是一个控制中心,用它来开关各个子程序,指定各个相关联的日志文件。  子程序:这个才是真正的监控脚本,用来监控各个指标。  邮件引擎:是由一个python程序来实现,它能够定义发邮件的服务器、发邮件人以及发件人密码  输出日志:整个监控系统要有日志输出

相关文章
相关标签/搜索