20.16/20.17 shell中的函數 shell中的數組 告警系統需求

shell腳本中的函數

shell腳本中的函數就是先把一段代碼整理到一個小單元中,並給這個小單元命名,當用到這段代碼時直接調用這個小單元名字即可。有時腳本中的某段代碼總是重複使用,如果寫成函數,每次用到時直接用函數名代替即可。

寫一個帶有函數功能的shell腳本。

vim func.sh#! /bin/bashfunction sum(){

  sum=$[$1+$2]
  echo $sum}sum $1 $2

該腳本的執行結果

[root@aminglinux-128 ~]# sh func.sh 1 23

func.sh中的sum()爲自定義的函數。在shell腳本中函數的格式如下:

function 函數名()

{

        command1

        command2

}

在shell腳本中,函數一定要寫在最前面,不能出現在中間或者最後。因爲函數是要被調用的,如果還沒有出現就被調用,肯定會出錯。

shell中的數組

1. 定義數組

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

2. 查看a數組元素

[root@aminglinux-128 ~]# echo ${a[*]}
1 2 3 4 5

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

[root@aminglinux-128 ~]# echo ${a[1]}
2

4. 獲取數組元素 個數

[root@aminglinux-128 ~]# echo ${#a[*]}
5

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

[root@aminglinux-128 ~]# echo ${a[*]}
1 2 3 4 5 b

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

[root@aminglinux-128 ~]# echo ${a[*]}
1 2 3 4 5 bbb

6. 刪除數組元素:

7. 刪除(清空)數組值

[root@aminglinux-128 ~]#  unset a
[root@aminglinux-128 ~]# echo ${a[*]}

8. 設定數組:

[root@aminglinux-128 ~]# a=(`seq 1 10`)
[root@aminglinux-128 ~]# echo ${a[*]}
1 2 3 4 5 6 7 8 9 10

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

[root@aminglinux-128 ~]# echo ${a[*]:0:5}
1 2 3 4 5

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

[root@aminglinux-128 ~]# echo ${a[*]:1:5}
2 3 4 5 6

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

[root@aminglinux-128 ~]# echo ${a[*]:0-3:2}
8 9

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

[root@aminglinux-128 ~]#  echo ${a[@]/8/cc66}
1 2 3 4 5 6 7 cc66 9 10

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

[root@aminglinux-128 ~]# a=(${a[*]/8/cc66})
[root@aminglinux-128 ~]#  echo ${a[*]}
1 2 3 4 5 6 7 cc66 9 10

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

[root@aminglinux-128 ~]# a=(${a[*]/cc66/888})
[root@aminglinux-128 ~]#  echo ${a[*]}
1 2 3 4 5 6 7 888 9 10

20.19 告警系統需求分析

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

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

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

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

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

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

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




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