shell中的函數、數組及告警系統需求分析

1、shell中的函數

函數就是把一段代碼整理到了一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字便可。python

格式: shell

function f_name() {
              command
}

注意:函數必需要放在最前面!function能夠省略直接寫函數名。數組

一、示列:打印shell的參數,函數input()bash

#!/bin/bash
input() {
    echo $1 $2 $# $0
}

input 1 a b

$1 表示第一個參數,$0表示文件名 $#表示參數的個數
編輯腳本:
shell中的函數、數組及告警系統需求分析
執行結果
shell中的函數、數組及告警系統需求分析服務器

inp後面也能夠跟變量名:
shell中的函數、數組及告警系統需求分析
執行結果:
shell中的函數、數組及告警系統需求分析
二、示例:用來定義加法的函數sum()架構

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

shell中的函數、數組及告警系統需求分析

三、示例:顯示網卡的IP地址框架

#!/bin/bash
ip() {
    ifconfig |grep -A1 "$1 " |tail -1 |awk '{print $2}'|awk -F':' '{print $2}'
}
read -p "Please input the eth name: " e
myip=`ip $e`
echo "$e address is $myip"

shell中的函數、數組及告警系統需求分析

shell中的數組

所謂數組,就是一串數字或一串字符串它造成的變量,咱們把這個變量叫作數組。
頗有用,但使用數組並很少。ide

一、定義數組
格式:
a=(1 2 3 4 5); echo ${a[@]} 這裏的數字也能寫爲字符串
echo ${#a[@]} 獲取數組的元素個數
echo ${a[2]} 讀取第三個元素,數組從0開始
echo ${a[*]} 等同於 ${a[@]} 顯示整個數組
數組賦值
a[1]=100; echo ${a[@]}
a[5]=2; echo ${a[@]} 若是下標不存在則會自動添加一個元素
數組的刪除
uset a; unset a[1]
例如:
定義數組 b=(一串數字或者字符串);
顯示結果 echo ${b[]}
[root@a shell]# b=(1 2 3)
[root@a shell]# echo ${b[]}
1 2 3函數

咱們也能夠查看某一個元素的值
例如:
咱們要查看某一個元素的值
echo ${a[2]}
[root@a shell]# echo ${b[2]}
3
這裏有個特殊性,數組從0開始,也就是0是第一個元素。工具

咱們也能夠顯示元素的個數
echo ${#b[]} 獲取數組的元素個數,#表示元素個數。
例如:
[root@a shell]# echo ${#b[]}
3

數組賦值
咱們也能夠針對數組的其中一個元素進行賦值。
[root@a shell]# b[3]=a
[root@a shell]# echo ${b[]}
1 2 3 a
這裏面咱們新增長了一個元素a,在打印的時候直接就排在的後面,這是由於下標不存在則會自動添加一個元素
也能夠進行替換
[root@a shell]# b[0]=aaa
[root@a shell]# echo ${b[]}
aaa 2 3 a

咱們也能夠將數組的值刪除,用unset這個命令
[root@a shell]# echo ${b[]}
aaa 2 3 a
[root@a shell]# unset b[3]
[root@a shell]# echo ${b[]}
aaa 2 3

數組分片
有時候咱們要截取數組中的一部分
[root@a shell]# echo ${a[*]}
1 2 3 4 5 6 7 8 9 10
例如
咱們要截取從4到7

4 5 6 7
從後面開始截取

8 9
這裏咱們須要注意的是,從後面截取的話必需要寫0-,不然不會成功。

數組的替換
[root@a shell]# echo ${a[]/8/6}
1 2 3 4 5 6 7 6 9 10
咱們也能夠直接賦值
[root@la shell]# echo ${a[]/3/100}
1 2 100 4 5 6 7 8 9 10
[root@a shell]# echo ${a[*]/100/3}
1 2 3 4 5 6 7 8 9 10

3、告警系統需求分析

一、需求:使用shell定製各類個性化告警工具,但須要統一化管理、規範化管理。
二、思路:指定一個腳本包,包含主程序、子程序、配置文件、郵件引擎、輸出日誌等。
三、主程序:做爲整個腳本的入口,是整個系統的命脈。
四、配置文件:是一個控制中心,用它來開關各個子程序,指定各個相關聯的日誌文件。
子程序:這個纔是真正的監控腳本,用來監控各個指標。
郵件引擎:是由一個python程序來實現,它能夠定義發郵件的服務器、發郵件人以及發件人密碼
輸出日誌:整個監控系統要有日誌輸出
shell中的函數,shell中的數組,告警系統需求分析
要求:咱們的機器角色多種多樣,可是全部機器上都要部署一樣的監控系統,也就說全部機器無論什麼角色,整個程序框架都是一致的,不一樣的地方在於根據不一樣的角色,定製不一樣的配置文件。
程序架構:shell中的函數、數組及告警系統需求分析
shell中的函數、數組及告警系統需求分析

相關文章
相關標籤/搜索