函數就是把一段代碼整理到了一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字便可。
格式: function f_name() {
command
}python事例1:函數必須放在最前面shell
#!/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:運算加減bash
#!/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
#ifconfig 查詢IP地址工具
#grep -A1 "$1" 查詢第一段spa
#awk '/inet/ '{print $2}' 查找inet字符列出後打印第二列(即IP地址)日誌
#read -P 把use當成read的變量.用戶輸出code
運行結果:
[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
定義數組:
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
需求:使用shell定製各類個性化告警工具,但須要統一化管理、規範化管理。 思路:指定一個腳本包,包含主程序、子程序、配置文件、郵件引擎、輸出日誌等。 主程序:做爲整個腳本的入口,是整個系統的命脈。 配置文件:是一個控制中心,用它來開關各個子程序,指定各個相關聯的日誌文件。 子程序:這個纔是真正的監控腳本,用來監控各個指標。 郵件引擎:是由一個python程序來實現,它能夠定義發郵件的服務器、發郵件人以及發件人密碼 輸出日誌:整個監控系統要有日誌輸出