shell数组

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

两盒软妹~` 提交于 2019-11-27 11:13:56
20.16/20.17 shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。 格式: function f_name() { command } 函数必须要放在最前面 示例1 #!/bin/bash input() { echo $1 $2 $# $0 } input 1 a b $# 参数的个数 $0 参数的名字 函数也支持使用参数 使用方法: sh fun1.sh 参数 参数2 示例2 #!/bin/bash sum() { s=$[$1+$2] echo $s } sum 1 2 示例3 centos6 #!/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" centos7 #!/bin/bash ip() { ifconfig |grep -A1 "$1: " | tail -1 | awk '/inet/ {print $2}' } read -p "Please input the eth name:

Linux学习笔记之认识与学习Bash

核能气质少年 提交于 2019-11-27 10:47:49
什么是shell :shell是一个翻译器,将所敲的命令翻译成CPU能理解的语言,之后CPU再去执行,CPU执行后返回给shell,shell再翻译成我们所能理解的语言并显示;终端并不是shell,而是建立了程序员与shell之间的桥梁。Linux中默认的shell为bash shell。       Windows下putty相当于Linux中的终端。其实shell是用来对核心发送指令的,核心收到指令后,就会控制相应的硬件。 为什么学习shell :命令行操作传输的速度快;大量的快捷键操作提高速度,Linux中通用。 本地变量 :在某一个shell中定义的变量为本地变量,只能在本shell中使用 环境变量 :会影响到所有的子shell 位置变量 :在脚本文件中使用,相当于形参,例如下面的$1等等,而$0表示脚本的名字,$#表示参数的个数,$*表示所有的参数,${10}表示第10个参数,而$10表示$1+0,即第一个参数加上0。 命令别名与历史命令 命令别名设置:alias,unalias 历史命令:history(最多存储最近的1000条,可以通过更改变量HISTFILESIZE改变) Bash Shell的操作环境 路径与命令查找顺序 :执行顺序即为tpye –a 命令 显示的顺序 Bash 的登陆与欢迎信息 :/etc/issue,登陆前的显示信息 \d为当前信息 /etc

shell的编程原理

佐手、 提交于 2019-11-27 05:50:23
一、编程介绍 1、早期编程 (1)驱动 硬件默认是不能用的; (2)不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译”; (3)更趋近于硬件开发的工程师需要学习“汇编语言”,而“汇编语言”被厂家所限制,C、C++的底层就是汇编语言 2、现在编程 基于高级和超高级语言,使程序员能够更好的实现编程功能 3、编程语言的分类 根据服务的重心不同分为: (1)面向过程:侧重于指令 (2)面向对象:侧重于数据 根据程序翻译成二进制指令的方式不同分为: (1)低级语言:汇编语言 (2)高级语言:根据编译方式的不同分为:         (1)解释型:逐行翻译,逐行执行。例:shell、python、JAVA         (2)编译型:一次编译,全部执行。例:C、C++、C#、JAVA 4、顺序执行无逻辑关系   循环执行 -- *for* while until   选择执行 -- 分支 if case* 二、shell脚本语言的介绍 1、优缺点   优点:调用os(操作系统)的命令行,来实现所有功能;   缺点:没有库调用(区分python) 2、Shell脚本包括:(1)*命令*(非常重要)          (2)变量(全局变量、局部变量、本地变量、传参)          (3)逻辑关系 3、Shell的第一句话(必须写) #!/bin/bash –定义脚本解释器

shell脚本8-13

天大地大妈咪最大 提交于 2019-11-27 05:38:55
一、文本处理工具 wc命令 wc(Word count)用于统计文本文件中的字符个数 15是行数 78是字符个数 805是文件大小(字节)【1字节等于8比特】 2、参数:-l(统计行数)、-w(统计单词数)、-c(统计字节数) cut(切片)命令 1 、指定分隔符,切割文件 2、常见参数:-d(指定分割符)、-f(指定提取哪一列)、--output-delimiter=‘’(将输出的分隔符,替换为自己想用的分隔符) 示例:cut -d” ” -f1 /etc/fstab(取第一列) cut -d” ” -f1,3 /etc/fstab(取第1、3列) cut -d” ” -f1-3 /etc/fstab(取第1到3列) cut -d[:] -f1d /etc/fstab(指定分隔符为空格和冒号)([ ]代表括号里的 任意字符都匹配) 3、 cut 无法指定多个分隔符, awk 可以指定多个分隔符 【 cut 的局限性: 1 、 -d 指定分隔符,不能同时指定多个 2 、不能做高级的格式 化输出;所以要掌握 awk 命令】 sort命令 1、sort命令根据 ASCII 码来进行排序,并不是数值大小 2、常用参数:-r(逆序)、 -f (忽略字符的大小写)       -t(指定字段分隔符)、 -n (以数值大小排序)        -u(排序去除重复,重复的不显示)        

学shell的第三天

折月煮酒 提交于 2019-11-27 05:31:01
编程原理: 1.编程介绍   早期编程      驱动 硬件默认是不能使用的;      不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行翻译;      更趋近与硬件开发的工程师,要学习“汇编语言”;而“汇编语言”被厂家限制    现在编程     基于高级语言,以及超高级语言,更好的让程序员能够的实现编程功能   编程语言的分类:     高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)     解释型--逐行翻译,逐行执行 shell     编译型--一次编译,全部执行 c语言 c++ c#     程序 = 指令 + 数据     面向对象--侧重于数据的编程语言     面向过程--侧重于指令   编程语言的执行方式:     1、顺序执行     2、循环执行--for(遍历) while(循环条件) until(和while相反)     3、选择执行--分支if *case* 2、shell脚本语言介绍   优点:调用os(操作系统)的命令行,来实现所有功能;    缺点:没有库调用   shell脚本包括:1、*命令*(非常重要)2、变量(全局变量、局部变量、本地变量、传参)3、逻辑关系   shell的第一句话!!!   #!/bin/bash --定义脚本解释器   /etc/shells --- 查看当前系统支持的shell程序

shell 编程

时光毁灭记忆、已成空白 提交于 2019-11-27 03:23:25
Shell 数组 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。 与大部分编程语言类似,数组元素的下标由0开始。 Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下: array_name=(value1 ... valuen) 实例 #!/bin/bash # author:菜鸟教程 # url:www.runoob.com my_array=(A B "C" D) 我们也可以使用下标来定义数组: array_name[0]=value0 array_name[1]=value1 array_name[2]=value2 读取数组 读取数组元素值的一般格式是: ${array_name[index]} 实例 #!/bin/bash # author:菜鸟教程 # url:www.runoob.com my_array=(A B "C" D) echo "第一个元素为: ${my_array[0]}" echo "第二个元素为: ${my_array[1]}" echo "第三个元素为: ${my_array[2]}" echo "第四个元素为: ${my_array[3]}" 执行脚本,输出结果如下所示: $ chmod +x test.sh $ ./test.sh 第一个元素为:

shell编程

∥☆過路亽.° 提交于 2019-11-26 22:44:52
一、简介 1、概念   shell就是一个计算机应用程序,跟QQ、微信等类似,但是他主要是提供计算机的操作界面,例如我们所使用Windows操作系统的图形操作界面和cmd.exe命令行操作界面。 shell并不是操作系统内核,可以看成是内核外边的壳,可以实现人机友好交互。    shell同时也可以看成是一种命令语言,本身是用C语言编写的,用shell命令可以编写程序,即我们所说的脚本程序(shell script),所以shell与shell script并不是同一个概念,但通常说shell脚本时就直接说成shell了。在本节所说的shell编程其实就是用shell命令语言编写的shell script。 2、分类   主要分为图形界面shell和命令行式shell两类   图形界面:Graphical User Interface shell 即 GUI shell,应用最常见,例如个人windows系统大部分都是GUI shell   命令行式:Command Line Interface shell ,即CLI shell,个人应用较少,主要是在服务器领域,例如服务器领域的linux操作系统大部分都是CLI shell 3、发展历史 二、编程风格 1、编程范式   面向对象:以数据为中心,考虑先如何组织数据,指令服务于数据。   面向过程:以指令为中心,来进行写程序

Shell编程-awk

给你一囗甜甜゛ 提交于 2019-11-26 22:43:46
简介 awk 是一种对立的编程语言,集成于所有UNIX/Linux中,这个名字是它创建者的名字首字母组成的 Alfred Aho,Peter Weinberger, and Brian Kernighan。 awk的基本语法 普通模式 awk '/pattern/{action}' files 其中patter是一个正则表达式,action又是一系列命令,对于满足匹配的文本执行一些动作,files表示待操作的文件,如果不指定,则输入是STDIN。如果不指定pattern,则对所有文件的每一行都执行action。 表达式模式 当在awk中使用比较操作符时,使用下面的语法模式,详见后面。 awk '(expression){action}' files 有如下一个示例文件 zdd.txt包含如下内容 Fruit Price/lbs Banana 0.89 Paech 0.79 Kiwi 1.50 Pineapple 1.29 Apple 0.99 显示一个文件的所有行 awk '{ print ; }' zdd.txt 分号表示命令结束,这个例子没有pattern,只有action 域编辑 awk自动将读入的行分割成域(field),域是由一个或多个分隔符分割开的字符集,缺省的分隔符是tab和空格,访问域可以用$1,$2, ... $n的形式,域都是从1开始的,而$0表示整个行

Shell基础学习(二) Shell变量

回眸只為那壹抹淺笑 提交于 2019-11-26 22:32:13
1、数据类型:   字符串   数组 2、变量的命名规范: 只能以a-z或A-Z开头   中间不能有空格,可以使用_   不能使用标点符号   不能使用shell的关键字 3、变量类型:   环境变量   局部变量   shell变量 4、字符串   字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。   单引号:     完全按引号中的内容输出,内部变量无效,转义字符也无效   双引号:     可以解析内部变量,可以出现转义字符   拼接字符     name='liupf'     echo "Hello "$name     echo "Hello ${name}"   获取字符串长度     name="liupf"     echo ${#name}   截取字符串     $name='liupf'     echo ${name:1:3}   查找子字符串位置     string=My name is liupf     echo `expr index "$string" is` 数组   1、Shell中用()表示数组,元素用空格隔开。基本形式表示为:     a、数组名=(值0 值1 值2 ··· 值n)     b、数组名=(      

shell脚本编程基础

落爺英雄遲暮 提交于 2019-11-26 21:28:09
一编程基础 1程序编程风格 程序:指令+数据 程序编程风格: (1)过程式:以指令为中心,数据服务于指令。 程序员把主要的精力集中在程序指令上,一步步怎么做的。比如C、C++符合人类处理事情的逻辑关系的,不过这适合简单的事情。 对于大型的应用程序的开发这种方法是非常难的,会产生混乱。 (2)对象式:以数据为中心,指令服务于数据。 通过指令处理数据,得到我们关心的结果,程序最重要的功能是在处理数据上。 对于大型的事是采用这种方法。比如盖大楼要雇用一些团队,把大的工作分解成小的工作。设计图纸有专门的设计院来完成,搬砖要有专门的工人。 对于大的项目来说不太关注每个流程了。更多的考虑把任务分包给具体的人,每个团队做自己的事,做完就好,不关心做事的方式。 就像有句话叫做只要白猫黑猫能抓住老鼠的就是好猫。 大项目使用的是面向对象,而小项目是面向过程。我们现在编脚本还是面向过程式的。 2程序的执行方式 (1)计算机:运行二进制指令 计算机只能识别二进制。计算机真的要运行一个程序,要把人类能够理解的东西转化成二进制。 (2)编程语言: 1低级:汇编 汇编语言也是字符串,和机器语言是一一对应的,要把汇编语言转化成机器码进行分析。 2高级: <1>编译 <1>编译:高级语言-->编译器-->目标代码 比如java,C# 编译型的语言要转化成二进制的内容才会执行,需要有编译器生成二进制的东西。