1. 程式人生 > >20.16-20.17 shell中的函數;20.18 shell中的數組;20.19 告警系統需求

20.16-20.17 shell中的函數;20.18 shell中的數組;20.19 告警系統需求

shell中的函數

20.16 shell中的函數(上)

函數就是把一段代碼整理到了一個小單元中,並給這個小單元起

一個名字,當用到這段代碼時直接調用這個小單元的名字即可。

1.

[root@hao-01 ~]# vi fun1.sh

添加內容:

#!/bin/bash

function inp(){

echo "The first par is $1"

echo "The second par is $2"

echo "The third par is $3"

echo "the scritp name is $0"

echo "the number of par is $#"

}

inp $1 $2 $3

2. 執行fun1.sh腳本,後面跟函數

[root@hao-01 ~]# sh fun1.sh 1

20.17 shell中的函數(下)

1. 加法函數

[root@hao-01 ~]# vi fun2.sh

添加內容:

#!/bin/bash

sum() {

s=$[$1+$2]

echo $s

}

sum 1 10

2. 執行fun2.sh腳本:

[root@hao-01 ~]# sh -x fun2.sh

1. 輸入網卡名字,顯示網卡ip

[root@hao-01 ~]# vi fun3.sh

添加內容:

#!/bin/bash

ip()

{

ifconfig |grep -A1 "$1: "|awk '/inet/ {print $2}'

}

read -p "please input the eth name: " ech

ip $eth

2. 執行fun3.sh腳本:

[root@hao-01 ~]# sh fun3.sh

please input the eth name: ens33

技術分享圖片

20.18 shell中的數組

1. 定義數組

[root@hao-01 ~]# a=(1 2 3 4 5)

2. 查看a數組元素

[root@hao-01 ~]# echo ${a[*]}

技術分享圖片

3. 查看數組某個元素(數組從0開始值為1):

[root@hao-01 ~]# echo ${a[1]}

技術分享圖片

4. 獲取數組元素 個數

[root@hao-01 ~]#

echo ${#a[*]}

技術分享圖片

5. 如果下標不存在則會自動添加一個元素:

[root@hao-01 ~]# a[5]=b

[root@hao-01 ~]# echo ${a[*]}

技術分享圖片

數組元素賦值(更改替換):

[root@hao-01 ~]# a[5]=bbb

[root@hao-01 ~]# echo ${a[*]}

技術分享圖片

6. 刪除數組元素:

技術分享圖片

7. 刪除(清空)數組值

[root@hao-01 ~]# unset a

[root@hao-01 ~]# echo ${a[*]}

技術分享圖片

8. 設定數組:

[root@hao-01 ~]# a=(`seq 1 10`)

[root@hao-01 ~]# echo ${a[*]}

技術分享圖片

9. 從第1元素開始,截取出5數值

[root@hao-01 ~]# echo ${a[*]:0:5}

技術分享圖片

從第2元素開始,截取出5數值

[root@hao-01 ~]# echo ${a[*]:1:5}

技術分享圖片

10.倒數第3元素開始,截取出2數值

[root@hao-01 ~]# echo ${a[*]:0-3:2}

技術分享圖片

11. 截取替換,8元素打印成cc66

[root@hao-01 ~]# echo ${a[@]/8/cc66}

技術分享圖片

12. 替換元素值8元素替換成cc66

[root@hao-01 ~]# a=(${a[*]/8/cc66})

[root@hao-01 ~]# echo ${a[*]}

技術分享圖片

替換元素值cc66元素替換成888

[root@hao-01 ~]# a=(${a[*]/cc66/888})

[root@hao-01 ~]# echo ${a[*]}

技術分享圖片

20.19 告警系統需求分析

1. 需求:使用shell定制各種個性化告警工具,但需要統一化管理、規範化管理。

2. 思路:指定一個腳本包,包含主程序、子程序、配置文件、郵件引擎、輸出日誌等。

3. 主程序:作為整個腳本的入口,是整個系統的命脈。

4. 配置文件:是一個控制中心,用它來開關各個子程序,指定各個相關聯的日誌文件。

5. 子程序:這個才是真正的監控腳本,用來監控各個指標。

6. 郵件引擎:是由一個python程序來實現,它可以定義發郵件的服務器、發郵件人以及發件人密碼

7. 輸出日誌:整個監控系統要有日誌輸出。


20.16-20.17 shell中的函數;20.18 shell中的數組;20.19 告警系統需求