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程序來實現,它可以定義發郵件的服務器、發郵件人以及發件人密碼 
輸出日誌:整個監控系統要有日誌輸出

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章