一、shell中的函数

函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。

格式: function _name()

{

command

}

函数必须放在最前边

示例1:

#! /bin/bash

input()

{

echo $1 $2 $# $0

}

input 1 a b

$0代表为这个scritp

$# 统计有几个参数

示例2:

#! /bin/bash

sum()

{

s=$[$1+$2]

echo $s

}

sum 1 2

vim fun2.sh

示例3:提取本机有用ip

#! /bin/bash

ip()

{

ifconfig|grep -A1 "$1" |tail -1 |awk '{print $2}' |awk -F ':' '{print $2}'

}

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

myip='ip $e'

echo "$e address is $myip"

直接执行不会有ip提示需要改进

grep -A1 显示关键词,包括关键词下一行

-w精准判断,同样不能过滤ens33:0:

改进为

[root@davery shell]# ifconfig |grep -A1 "ens33: "  才能准确判断,:后有空格

打印含有inte的行

提取含有inte这一行的第二个字段

最终脚本

vim fun3.sh

或者

vim fun3.sh

或者

输入ens33

但只能输出第一个ip,应该改为grep -A1 “$1”

输入ens33:0      ip为150

输入ens33 ip为101

输入ip不存在的情况

二、shell中的数组

定义数组 b=(1 2 3); echo ${b[@]}

echo ${#a[@]} 获取数组的元素个数

echo ${b[2]} 读取第三个元素,数组从0开始

echo ${b[*]} 等同于 ${b[@]} 显示整个数组

数组赋值

b[1]=100; echo ${b[@]}

b[3]=2; echo ${b[@]} 如果下标不存在则会自动添加一个元素

数组的删除

uset b; unset b[1]

数组分片

b=(`seq 1 5`)

echo ${b[@]:0:3} 从第一个元素开始,截取3个

echo ${b[@]:1:4} 从第二个元素开始,截取4个

echo ${b[@]:0-3:2} 从倒数第3个元素开始,截取2个

数组替换

echo ${b[@]/3/100}

a=(${b[@]/3/100})

三、告警系统需求分析

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

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

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

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

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

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

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

Linux centosVMware shell中的函数、shell中的数组、的更多相关文章

  1. java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

    Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...

  2. shell中的函数 shell中的数组 告警系统需求分析

     

  3. 关于numpy中的函数return中加入字符串类型数据后,小数点精度变化

    weekdays.pyimport numpy as npfrom datetime import datetimedef datestr2num(s): return datetime.strpti ...

  4. 关于db2中listagg函数开发中的体验

    一.首先解释一下可能会查询的基础问题: 1.1db2 “with ur”是什么意思: 在DB2中,共有四种隔离级:RS,RR,CS,UR.以下对四种隔离级进行一些描述,同时附上个人做试验的结果.隔离级 ...

  5. javascript 中 split 函数分割字符串成数组

    分割字符串成数组的方法有很多,不过使用最多的还是split函数 <script language="javascript"> str="2,2,3,5,6,6 ...

  6. [Python]Python Class 中的 函数定义中的 self

    In [80]: class MyClass001: ....: def selfDemo(self): ....: print 'My Demo' ....: In [81]: p = MyClas ...

  7. Makefile中的函数

    Makefile 中的函数 Makefile 中自带了一些函数, 利用这些函数可以简化 Makefile 的编写. 函数调用语法如下: $(<function> <arguments ...

  8. Oracle中REGEXP_SUBSTR函数(转)

    Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下:在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','2 ...

  9. Oracle中REGEXP_SUBSTR函数(字符串转多行)

    Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下: 在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20',' ...

  10. Oracle中REGEXP_SUBSTR函数

    Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下: 在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20',' ...

随机推荐

  1. 使用Python处理非对称加密-测试大佬常用的处理方式

    一.思考❓❔ 1.什么是非对称加密? 公钥加密系统,广泛用于数据加密传输 更详细的解释可参考维基百科( https://en.wikipedia.org/wiki/RSA_(cryptosystem) ...

  2. iOS 音视频播放

    播放控制切换为: ijkplayer wiki: https://github.com/changsanjiang/SJVideoPlayer/wiki/Use-ijkplayer 播放控制切换为: ...

  3. Yii2掉index.php?r=

    普通 首先确认apache2配置 1. 开启 apache 的 mod_rewrite 模块 去掉LoadModule rewrite_module modules/mod_rewrite.so前的“ ...

  4. 微信小程序开发豆瓣电影接口失效

    豆瓣旧API接口停用,使用以下接口代替 .获取正在热映的电影:https://douban.uieee.com/v2/movie/in_theaters访问参数:start : 数据的开始项 coun ...

  5. 【笔记5-购物车及地址模块】从0开始 独立完成企业级Java电商网站开发(服务端)

    购物车模块 数据库表设计 购物车表 CREATE TABLE mmall_ cart ( 'id' int(11) NOT NULL AUTO_ INCREMENT, 'user_ id' int(1 ...

  6. python学习之HTML

    1.HTML初知 <!DOCTYPE html> <html lang="en"> <head> html头 <meta charset= ...

  7. ZooKeeper技术总结

    因为之前学习并使用了Kafka,所以专门查看了有关zookeeper相关的资料,看了大量的博客及官网资料,也因为有些地方理解不清楚向认识的专业人士进行了咨询,这里对这段时间的学习进行总结. ZooKe ...

  8. Executor、Executors、ExecutorService多线程操作

    Executor:一个接口,其定义了一个接收Runnable对象的方法executor,其方法签名为executor(Runnable command),该方法接收一个Runable实例,它用来执行一 ...

  9. 洛谷P1164小A点菜(01背包)

    题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:“随便点”. 题目描述 不过uim由于买了一些辅(e ...

  10. pandas help

    1. read_csv read_csv方法定义: pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infe ...