ijava学习网> 知识分享> Linux> 20.16/20.17 shell中的函数 shell中的数组 告警系统需求

20.16/20.17 shell中的函数 shell中的数组 告警系统需求

时间: 2019-01-14 11:02:10 标签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. 输出日志:整个监控系统要有日志输出。




版权说明| 关于ijava| 合作伙伴| 联系我们| 网站地图| 招贤纳士

Copyright © 2017 www.ijava.com All Rights Reserved 版权所有•ijava学习网 京ICP备14061482号-18         官方QQ:3325669927

ijava学习网提供免费java教程和大量java面试题库,给高级会员提供免费的java培训,同时提共一些java开发项目和java下载,java工程师,java菜鸟们快来哦。记住我们的网站:www.ijava.com