shell中的函数、数组、报警系统脚本

时间:2021-07-27 04:38:30

1、shell中的函数

函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 
个小单元的名字即可。
格式: function f_name() {
commond

 函数必须要放在脚本的最前面
案例1:

#!/bin/bash
input() {
echo "第一个参数是$1"
echo "第二个参数是$2"
echo "总共有多少个参数 $#"
echo "这个脚本的名字是 $0"
}
read -p "input a num:" n
read -p "input a num:" m
input $n $m
案例2:

#!/bin/bash
input() {
echo "第一个参数是$1"
echo "第二个参数是$2"
echo "总共有多少个参数 $#"
echo "这个脚本的名字是 $0"
}
input $1 $2

shell中的函数、数组、报警系统脚本

 函数中的运算:
案例1:

#!/bin/bash
sum(){
s=$[$1+$2]
echo $s
}
sum $1 $2
案例2:

#!/bin/bash
sum(){
s=$[$1+$2+$3]
echo $s
}
read -p "aaa:" a
read -p "bbb:" b
read -p "ccc:" c

sum $a $b $c

shell中的函数、数组、报警系统脚本

 ip 显示函数(花了很长时间才把所有的给整合好,尤其是在输入数字时,显示对应的网卡和IP):

#!/bin/bash
#by yumingzhen
#
echo ""
k=0
for i in `ifconfig | awk '/:/ {print $1}' |grep ":" |sed 's/://g'`
do
z=$i
k=$[$k+1]
m=$k
echo $m=$i
cc=$cc$i:
done
echo "按a show all IP addr"
echo "按q|quit|Q exit"
ip_fun(){
ifconfig |grep -A1 "$id" | awk '/inet/ {print $2}'
}
while :
do
echo ""
read -p "input a num to get ip_add:" n
end=`ifconfig | awk '/:/ {print $1}' |grep ":" |wc -l`
n1=`echo $n |sed 's/[0-9]//g'`
if [ $n == "q" ] || [ $n == "quit" ] || [ $n == "Q" ] ;then
exit 0
elif [ $n == "a" ];then
for a in `seq 1 $end`
do
id=`echo $cc |cut -d':' -f $a`
echo $id=`ip_fun`
done
exit 0
elif [ -n "$n1" ] || [ -z "$n" ] || [ "$n" -gt "$end" ];then
echo "请输入正确的数字,不大于$end"
continue
fi

id=`echo $cc |cut -d':' -f $n `
echo ""
echo $id IP=`ip_fun`
done

shell中的函数、数组、报警系统脚本

shell中的函数、数组、报警系统脚本

 

2、数组
@ 或 * 号

定义数组 a=(1 2 3 4 5); echo ${a[@]}
echo ${#a[@]} 获取数组的元素个数 
echo ${a[2]} 读取第三个元素,数组从0开始
echo ${a[*]} 等同于 ${a[@]} 显示整个数组
数组赋值
a[1]=100; echo ${a[@]}
a[5]=2; echo ${a[@]} 如果下标不存在则会自动添加一个元素
数组的删除
uset a; unset a[1]

shell中的函数、数组、报警系统脚本

数组分片
a=(`seq 1 5`)
echo ${a[@]:0:3} 从第一个元素开始,截取3个
echo ${a[@]:1:4} 从第二个元素开始,截取4个
echo ${a[@]:0-3:2} 从倒数第3个元素开始,截取2个
数组替换
echo ${a[@]/3/100}
a=(${a[@]/3/100})
shell中的函数、数组、报警系统脚本

 

3、报警系统主脚本
shell中的函数、数组、报警系统脚本

shell中的函数、数组、报警系统脚本

#!/bin/bash

#Written by aming.
# 是否发送邮件的开关
export send=1
# 过滤ip地址
export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {print $2}'`
dir=`pwd`
# 只需要最后一级目录名
last_dir=`echo $dir|awk -F'/' '{print $NF}'`
# 下面的判断目的是,保证执行脚本的时候,我们在bin目录里,不然监控脚本、邮件和日志很有可能找不到
if [ $last_dir == "bin" ] || [ $last_dir == "bin/" ]; then
conf_file="../conf/mon.conf"
else
echo "you shoud cd bin dir"
exit
fi
exec 1>>../log/mon.log 2>>../log/err.log
echo "`date +"%F %T"` load average"
/bin/bash ../shares/load.sh
#先检查配置文件中是否需要监控502
if grep -q 'to_mon_502=1' $conf_file; then
export log=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`
/bin/bash ../shares/502.sh
fi
shell中的函数、数组、报警系统脚本

shell中的函数、数组、报警系统脚本的更多相关文章

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

    7月16日任务 20.16/20.17 shell中的函数20.18 shell中的数组20.19 告警系统需求分析 20.16/20.17 shell中的函数 函数就是一个子shell就是一个代码段 ...

  2. Linux centosVMware shell中的函数、shell中的数组、

    一.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function _name() { command ...

  3. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

  4. C Shell中的变量数组

    今天刚刚在看一点C Shell的内容,发现一个挺好玩的东西!就是环境变量可以像数组那样来设置!具体设置语法如下: set variable=(element1 element2 ...) //注意元素 ...

  5. js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么

    js课程 3-10  js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...

  6. 在Shell中使用函数文件

    需要编写一个较庞大的脚本时,可能会涉及许多函数.变量.这是通常建议将众多的函数.变量放入一个单独的脚本内.这样做的好处很明显,不用担心某个函数.变量是否已经被定义和使用,也不用频繁地定义.清除函数和变 ...

  7. Shell中的函数

    一.在脚本中定义函数 与变量一样,在使用函数之前应该对函数进行定义.与其他编程类语言相比,由于没有数据类型的概念,因此也不必定义函数的类型. (1)在脚本中可以使用以下方式定义函数: function ...

  8. 小苏的Shell编程笔记之六--Shell中的函数

    http://xiaosu.blog.51cto.com/2914416/531247 Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以 ...

  9. shell中的函数、数组

    函数定义: 数组:

随机推荐

  1. mas_makeConstraints && mas_remakeConstraints && mas_updateConstraints 用法与注意事项

    mas_makeConstraints && mas_remakeConstraints && mas_updateConstraints 用法与注意事项 字数400 ...

  2. 黄聪:wordpress源码解析-目录结构-文件调用关系(转)

    Wordpress是一个单入口的文件,所有的前端处理都必须经过index.php,这是通过修改web服务器的rewrite规则来实现的.这种做法的好处是显而易见的,这样URL更好看,不必为每一个url ...

  3. Linux编译安装Darwin Streaming Server 6.0.3

    买回来VPS后就一直想在上面搭建一个流媒体服务,在网上搜索了很多资料,大部分都是介绍Linux中安装Darwin Streaming Server 5.5.5版本,因为这个版本提供了针对linux的安 ...

  4. JavaScript各种遍历方式详解

    为了方便例子讲解,现有数组和json对象如下 var demoArr = ['Javascript', 'Gulp', 'CSS3', 'Grunt', 'jQuery', 'angular']; v ...

  5. JQ 遍历节点

    .children() : 取得匹配元素的子元素集合 .next() :取得匹配元素后面紧邻的同辈元素 .prev() :取得匹配元素前面紧邻的同辈元素 .siblings() :取得匹配元素前.后的 ...

  6. 九度OnlineJudge之1018:统计同成绩学生人数

    题目描述: 读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入:                        测试输入包含若干测试用例,每个测试用例的格式为 第1行:N 第2行:N名学生的 ...

  7. 【转】linux grep命令

    1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来 2.格式 grep [options] 3.主要参数 [options]主要参数: - ...

  8. 2. getline()和get()

    1.面向行输入:getline() ---其实还可以接受第三个参数. getline()函数读取整行,调用该方法 使用cin.getline().该函数有两个参数, 第一个参数是是用来存储输入行的数组 ...

  9. 第六次作业:Alpha阶段综合报告(Java-Team)

    团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://github.com/WHUSE201 ...

  10. [NSURL URLWithString:] returns nil

    You need to escape the non-ASCII characters in your hardcoded URL as well: //localisationName is a a ...