05_01_egrep及扩展正则表达式05_02_bash脚本编程之一 变量、变量类型等

05_01_egrep及扩展正则表达式

REGEXP:正则表达式

基本正则表达式:Basic REGEXP

grrep:使用基本正则表达式定义的模式来过滤文本的命令

-E:使用扩展正则表达式

-A   n:显示匹配到的行以及其下的n行;

-B   n:显示匹配到的行以及其上的n行;

-C   n:显示匹配到的行和其上与下各n行;

注:grep -E就相当于egrep命令,两者是一样的,可以看做egrep是grep -E的别名

扩展正则表达式:Extended REGEXP

在扩展正则表达式中, 字符匹配以及锚定字符与基本正则表达式中用法是一样的;

次数匹配略有不同,其中

*:一样,表示匹配前面字符任意次;

?:在扩展正则表达式中不用加反斜杠转义,用法仍一样;

+:匹配其前面的字符至少一次;

{m,n}:在扩展正则表达式中不用加反斜杠转义;

分组字符:

同样使用括号()但是也不需要使用转义符;

或者字符:

|   :例如C | cat 表示匹配C或cat字符二者其中之一

例如显示所有以数字结尾且文件名中不包含空白的文件:

ls  *[^[:space:]]*[0-9]


05_02_bash脚本编程之一 变量、变量类型等

fgrep :fast grep 快速搜索,不支持正则表达式,但是执行速度快;

shell编程:

编译器,解释器

编程语言:机器语言,汇编语言,高级语言

静态语言:编译型语言

        强类型(变量),事先转换成可执行格式,例如:

        C、C++、JAVA、C#

动态语言:解释型语言,on the fly

        弱类型

        边解释边执行,例如:

        PHP、SHELL、python、perl

面向过程::Shell,C

面向对象:JAVA、python、perl,C++

变量:内存空间,命名

内存:编制的存储单元

变量类型:事先确定数据的存储长度和格式,分为:

    字符型

    数值型,又分为:

                整型,浮点型(小数)

    布尔型(真和假)

逻辑运算:与,或,非,异或

与:两个条件都需要满足,才符合条件,例如 :

1 & 0 = 0     ;  0 & 1 = 0    ; 0 & 0 = 0     ; 1 & 1 =1                 

或:二选一,两个条件中只要有一个满足即可

非:用叹号!表示,即为

!真=假              ;         !假=真


强类型语言:变量在使用前,必须事先声明,甚至还需要初始化;

弱类型语言:变量用时声明,甚至不区分变量类型;

shell:是一个弱类型的编程语言

变量赋值:VAR_NAME(变量名)=value(值)

bash变量类型分为:环境变量, 本地变量(局部变量),位置变量,特殊变量

本地变量,声明:

VARNAME=value:作用域为整个bash进程;

局部变量,声明:

local  VARNAME=value:作用域为当前代码段;

环境变量,声明:

export  VARNAME=value:作用域为当前shell进程及其子进程;

位置变量:

$1,$2,...

特殊变量:

$?:用于保存上一个命令的执行状态返回值;

程序执行,可能有两类返回值:

1、程序执行结果;

2、程序状态返回代码(0-255)

        0        :正确执行

        1-255 :错误执行,1,2,127错误代码是系统预留的

引用变量:

${VARNAME}:其中括号在不影响引用时可省略;

撤销变量:

unset  VARNAME(变量名)

查看当前shell中变量:

    set


脚本

命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序

#!/bin/bash     (shebang:魔数,shell脚本第一行都为这个,注意这个路径是运行用户所在地bash路径)

# 以#开头的为注释行,不执行


注:脚本在执行时会启动一个子shell进程:

        命令行中启动的脚本会继承当前shell环境变量;

        系统自动执行的脚本(非命令行启动)就需要自我定义需要的各环境变量

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容