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

20.16 shell中的函数

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

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

#!/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:运算加减

#!/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" 查询第一段

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

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

运行结果:

[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程序来实现,它可以定义发邮件的服务器、发邮件人以及发件人密码 
输出日志:整个监控系统要有日志输出

猜你喜欢

转载自my.oschina.net/u/3803395/blog/1930952
今日推荐