20.16 20.17shell中的函数上下;20.18 shell中的数组;20.19 告警系统需求分析

20.16shell中的函数(上)

函数就是把一段代码整理到了一个小单元中,并给这个小单元起

一个名字,当用到这段代码时直接调用这个小单元的名字即可。

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.17shell中的函数(下)

1. 加法

fun2.sh

sum() {

s=$[$1+$2]

echo $s

}


sum 1 10

fun2.sh脚本:

sh -x fun2.sh

1. 输入网卡名字显示网卡ipfun3.sh

ip()

{

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

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

ip $eth

fun3.shfun3.sh

please input the eth name: ens33

wKioL1m_ePDxHp-8AAAdkA0DXCU995.png

ottom:#ddd 1px solid;border-left:#ddd 1px solid;" alt="spacer.gif" src="http://img.jb51.cc/vcimg/static/loading.png" src="http://zhuneianxiang.blog.51cto.come/u261/themes/default/images/spacer.gif">

20.18shell中的数组

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

2. 查看a元素 echo ${a[*]}

wKioL1m_eQeRyEPaAAAHArPsieY462.png

ottom:#ddd 1px solid;border-left:#ddd 1px solid;" alt="spacer.gif" src="http://img.jb51.cc/vcimg/static/loading.png" src="http://zhuneianxiang.blog.51cto.come/u261/themes/default/images/spacer.gif">

3. 某个(数组从0开始值为1):

[1]}

wKiom1m_eVDAwNIoAAALikraklM268.png

4. 获取元素 个数echo ${#[*]}

wKioL1m_eTSgIEgHAAAGESCka4I653.png

5. 如果下标不存在则会自动添加一个元素:

5]=b

wKioL1m_eUyy8YCdAAAQWSV1WXA481.png

数组元素赋值(更改替换):

a[bbb

echo ${

wKioL1m_eW-j3YtxAAAQ15gbWd0439.png

6.删除数组元素:

wKioL1m_eYeDjh0wAAARF8Nuq1o041.png

ottom:#ddd 1px solid;border-left:#ddd 1px solid;" alt="spacer.gif" src="http://img.jb51.cc/vcimg/static/loading.png" src="http://zhuneianxiang.blog.51cto.come/u261/themes/default/images/spacer.gif">

7. (清空)数组值unset a

wKiom1m_edLxM8TcAAAPW0GQ-Z8825.png

8. 设定数组:

=(`seq 1 10`)

wKiom1m_eeujNRrpAAAMkF9TFX8804.png

9. 从第1开始,截取5数值echo ${[*]:0:}

wKiom1m_egmze8nTAAAOo6ZovAA982.png

从第2}

wKiom1m_eiLyLlBEAAAO7xzB3_Y305.png

10. 倒数第30-32}

wKiom1m_ejjS2d_gAAAOuD2KxYw062.png

11. 截取替换,8元素打印成cc66[@]/8/cc66

wKiom1m_eorQpTmHAAAZTmKHOLo628.png

12.替换元素值元素替换成a=(${[*]/})

wKiom1m_eqnwxugEAAAWOJFANoM213.png

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

wKioL1m_epuCG1CVAAAWQ7Kf41E280.png

20.19告警系统需求分析

需求:使用shell定制各种个性化告警工具,但需要统一化管理、规范化管理。

思路:指定一个脚本包,包含主程序、子程序、配置文件邮件引擎、输出日志等。

主程序:作为整个脚本的入口,是整个系统的命脉。

4. 配置文件:是一个控制中心,用它来开关各个子程序,指定各个相关联的日志文件

子程序:这个才是真正的监控脚本,用来监控各个指标。

邮件引擎:是由一个python程序来实现,它可以定义发邮件的服务器、发邮件人以及发件人密码

输出日志:整个监控系统要有日志输出

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...