函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字便可。
格式: 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程序来实现,它能够定义发邮件的服务器、发邮件人以及发件人密码 输出日志:整个监控系统要有日志输出