Linux centosVMware shell中的函数、shell中的数组、
一、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中的数组、的更多相关文章
- java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包
Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...
- shell中的函数 shell中的数组 告警系统需求分析
- 关于numpy中的函数return中加入字符串类型数据后,小数点精度变化
weekdays.pyimport numpy as npfrom datetime import datetimedef datestr2num(s): return datetime.strpti ...
- 关于db2中listagg函数开发中的体验
一.首先解释一下可能会查询的基础问题: 1.1db2 “with ur”是什么意思: 在DB2中,共有四种隔离级:RS,RR,CS,UR.以下对四种隔离级进行一些描述,同时附上个人做试验的结果.隔离级 ...
- javascript 中 split 函数分割字符串成数组
分割字符串成数组的方法有很多,不过使用最多的还是split函数 <script language="javascript"> str="2,2,3,5,6,6 ...
- [Python]Python Class 中的 函数定义中的 self
In [80]: class MyClass001: ....: def selfDemo(self): ....: print 'My Demo' ....: In [81]: p = MyClas ...
- Makefile中的函数
Makefile 中的函数 Makefile 中自带了一些函数, 利用这些函数可以简化 Makefile 的编写. 函数调用语法如下: $(<function> <arguments ...
- Oracle中REGEXP_SUBSTR函数(转)
Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下:在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','2 ...
- Oracle中REGEXP_SUBSTR函数(字符串转多行)
Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下: 在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20',' ...
- Oracle中REGEXP_SUBSTR函数
Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下: 在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20',' ...
随机推荐
- Django 生成数据库表时的报错TypeError: __init__() missing 1 required positional argument: 'on_delete'
原因及解决办法: https://www.cnblogs.com/phyger/p/8035253.html
- 第一篇 Python中一切皆对象
- php 加解密函数
PHP 加密解密函数: /** * 系统加密方法 * @param string $data 要加密的字符串 * @param string $key 加密密钥 * @param int $expir ...
- malloc实现机制
使用过c语言的都知道malloc是一个动态分配内存的函数,还可以通过free释放内存空间. 如果我们想分析一下malloc的源码,这其实不是一会就能看懂的,但是我们可以讨论一下malloc的简单实现. ...
- Gradle是什么?
Gradle是什么? Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的 ...
- IoT生态不完善、与智能电视区别不大,荣耀智慧屏概念大于实际
编辑 | 于斌 出品 | 于见(mpyujian) 前两天,华为荣耀略显"低调"地在北京召开了一场小型的媒体沟通会.在这场沟通会上,荣耀却颇为"重磅"地推出了坊 ...
- excel表格 筛选 通过mysql语句
1.整理excel表格的数据 类似的 前面有其他符号的 都可以处理. 注意下一步是2个操纵:分别设置左右: 结果: 2.在复制粘贴到excel的时候,会有一些数字被设置成了科学计数法, 例如复制到ex ...
- Unix套接字接口
简介 套接字是操作系统中用于网络通信的重要结构,它是建立在网络体系结构的传输层,用于主机之间数据的发送和接收,像web中使用的http协议便是建立在socket之上的.这一节主要讨论网络套接字. 套接 ...
- Plastic Bottle Manufacturer - Consumer Demand For Plastic Bottles Becomes Higher
Since transparent containers enable consumers to clearly see the contents, consumers are increasingl ...
- 批处理执行Testng
@echo off set LIB=项目的jar路径 set CLASSPATH=%LIB%\jar\commons-beanutils-.jar;%LIB%\jar\testng.jar;%LIB% ...