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

简介:

20.16 shell中的函数(上)

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

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

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

1. 加法函数:

[root@hao-01 ~]# vi fun2.sh

添加内容:

#!/bin/bash

sum() {

s=$[$1+$2]

echo $s

}


sum 1 10

2. 执行fun2.sh脚本:

[root@hao-01 ~]# sh -x fun2.sh

1. 输入网卡名字,显示网卡ip:

[root@hao-01 ~]# vi fun3.sh

添加内容:

#!/bin/bash

ip()

{

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

}


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

ip $eth

2. 执行fun3.sh脚本:

[root@hao-01 ~]# sh fun3.sh

please input the eth name: ens33

wKioL1m_ePDxHp-8AAAdkA0DXCU995.png

spacer.gif

20.18 shell中的数组

1. 定义数组:

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

2. 查看a数组的元素:

[root@hao-01 ~]# echo ${a[*]}

wKioL1m_eQeRyEPaAAAHArPsieY462.png

spacer.gif3. 查看数组某个元素的值(数组从0开始值为1):

[root@hao-01 ~]# echo ${a[1]}

wKiom1m_eVDAwNIoAAALikraklM268.png

4. 获取数组的元素 个数:

[root@hao-01 ~]# echo ${#a[*]}

wKioL1m_eTSgIEgHAAAGESCka4I653.png

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

[root@hao-01 ~]# a[5]=b

[root@hao-01 ~]# echo ${a[*]}

wKioL1m_eUyy8YCdAAAQWSV1WXA481.png

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

[root@hao-01 ~]# a[5]=bbb

[root@hao-01 ~]# echo ${a[*]}

wKioL1m_eW-j3YtxAAAQ15gbWd0439.png

6. 删除数组元素:

wKioL1m_eYeDjh0wAAARF8Nuq1o041.png

spacer.gif7. 删除(清空)数组值:

[root@hao-01 ~]# unset a

[root@hao-01 ~]# echo ${a[*]}

wKiom1m_edLxM8TcAAAPW0GQ-Z8825.png

8. 设定数组:

[root@hao-01 ~]# a=(`seq 1 10`)

[root@hao-01 ~]# echo ${a[*]}

wKiom1m_eeujNRrpAAAMkF9TFX8804.png

9. 从第1个元素开始,截取出5个数值:

[root@hao-01 ~]# echo ${a[*]:0:5}

wKiom1m_egmze8nTAAAOo6ZovAA982.png

从第2个元素开始,截取出5个数值:

[root@hao-01 ~]# echo ${a[*]:1:5}

wKiom1m_eiLyLlBEAAAO7xzB3_Y305.png

10. 从倒数第3个元素开始,截取出2个数值:

[root@hao-01 ~]# echo ${a[*]:0-3:2}

wKiom1m_ejjS2d_gAAAOuD2KxYw062.png

11. 截取替换,8元素打印成cc66:

[root@hao-01 ~]# echo ${a[@]/8/cc66}

wKiom1m_eorQpTmHAAAZTmKHOLo628.png

12. 替换元素值,8元素替换成cc66:

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

[root@hao-01 ~]# echo ${a[*]}

wKiom1m_eqnwxugEAAAWOJFANoM213.png

替换元素值,cc66元素替换成888:

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

[root@hao-01 ~]# echo ${a[*]}

wKioL1m_epuCG1CVAAAWQ7Kf41E280.png

20.19 告警系统需求分析

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

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

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

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

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

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

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










本文转自 主内安详 51CTO博客,原文链接:http://blog.51cto.com/zhuneianxiang/1966376,如需转载请自行联系原作者
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
存储 Shell
Shell 数组
【10月更文挑战第16天】
431 3
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
521 6
|
Shell Linux C语言
Shell 函数
10月更文挑战第4天
192 7
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
Shell PHP 索引
Shell 数组
10月更文挑战第2天
249 1
|
Shell KVM 虚拟化
Shell 数组编程
【8月更文挑战第22天】 Shell 数组编程
321 10
|
Shell
5.Electron之shell(使用系统默认浏览器打开网页)
5.Electron之shell(使用系统默认浏览器打开网页)
813 1
|
Shell 开发者
Shell 函数深入解析与实践
了解 Shell 函数的基础,包括定义、参数传递及返回值。函数定义有多种语法,如 `function func() {...}` 或 `func() {...}`。参数通过 `$1`, `$2` 等访问,`$@` 代表所有参数。`return` 用于返回退出状态码(0-255),非数值数据需用 `echo`。正确获取函数返回值应立即检查 `$?`,例如:`result=$?`。实践中不断探索和学习!
452 1
|
存储 算法 安全
shell 脚本之 函数与数组
shell 脚本之 函数与数组
|
Shell Linux 程序员
在Linux中, 什么是shell函数?如何使用它们?
在Linux中, 什么是shell函数?如何使用它们?