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

來源:互聯網
上載者:User

標籤:ash   檔案名稱   use   ifconf   郵件引擎   shell中的函數   strong   部分   入口   

一、shell中的函數

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

格式:

function f_name() {              command}

注意:函數必須要放在最前面!function可以省略直接寫函數名。

1、示列:列印shell的參數,函數input()

#!/bin/bashinput() {? ? echo $1 $2 $# $0}input 1 a b

$1 表示第一個參數,$0表示檔案名稱 $#表示參數的個數
編輯指令碼:

執行結果

inp後面也可以跟變數名:

執行結果:

2、樣本:用來定義加法的函數sum()

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

3、樣本:顯示網卡的IP地址

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

shell中的數組

所謂數組,就是一串數字或一串字串它形成的變數,我們把這個變數叫做數組。
很有用,但使用數組並不多。

1、定義數組
格式:
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[]}
[[email protected] shell]# b=(1 2 3)
[[email protected] shell]# echo ${b[]}
1 2 3

我們也可以查看某一個元素的值
例如:
我們要查看某一個元素的值
echo ${a[2]}
[[email protected] shell]# echo ${b[2]}
3
這裡有個特殊性,數組從0開始,也就是0是第一個元素。

我們也可以顯示元素的個數
echo ${#b[]} 擷取數組的元素個數,#表示元素個數。
例如:
[[email protected] shell]# echo ${#b[]}
3

數組賦值
我們也可以針對數組的其中一個元素進行賦值。
[[email protected] shell]# b[3]=a
[[email protected] shell]# echo ${b[]}
1 2 3 a
這裡面我們新增加了一個元素a,在列印的時候直接就排在的後面,這是因為下標不存在則會自動添加一個元素
也可以進行替換
[[email protected] shell]# b[0]=aaa
[[email protected] shell]# echo ${b[]}
aaa 2 3 a

我們也可以將數組的值刪除,用unset這個命令
[[email protected] shell]# echo ${b[]}
aaa 2 3 a
[[email protected] shell]# unset b[3]
[[email protected] shell]# echo ${b[]}
aaa 2 3

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

4 5 6 7
從後面開始截取

8 9
這裡我們需要注意的是,從後面截取的話必須要寫0-,否則不會成功。

數組的替換
[[email protected] shell]# echo ${a[]/8/6}
1 2 3 4 5 6 7 6 9 10
我們也可以直接賦值
[[email protected] shell]# echo ${a[]/3/100}
1 2 100 4 5 6 7 8 9 10
[[email protected] shell]# echo ${a[*]/100/3}
1 2 3 4 5 6 7 8 9 10

三、警示系統需求分析

1、需求:使用shell定製各種個人化警示工具,但需要統一化管理、正常化管理。
2、思路:指定一個指令碼包,包含主程式、子程式、設定檔、郵件引擎、輸出日誌等。
3、主程式:作為整個指令碼的入口,是整個系統的命脈。
4、設定檔:是一個控制中心,用它來開關各個子程式,指定各個相關聯的記錄檔。
子程式:這個才是真正的監控指令碼,用來監控各個指標。
郵件引擎:是由一個python程式來實現,它可以定義發郵件的伺服器、發郵件人以及寄件者密碼
輸出日誌:整個監控系統要有日誌輸出
shell中的函數,shell中的數組,警示系統需求分析
要求:我們的機器角色多種多樣,但是所有機器上都要部署同樣的監控系統,也就說所有機器不管什麼角色,整個程式架構都是一致的,不同的地方在於根據不同的角色,定製不同的設定檔。
程式架構:

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.