当前位置:网站首页>RECH8.0版本学习 days 12 rh134部分

RECH8.0版本学习 days 12 rh134部分

2020-11-07 16:49:02 叛乱的影子1992

编写间的BASH脚本

bash shell 脚本第一行开头如下: #!/bin/bash

创建完shell脚本,需要用chmod 命令添加可执行权限,也有肯能与chown命令组合更改脚本的文件所有权。仅为脚本的目标用户授予执行权限。

对特殊字符加引号,三种工具来取消或转义特殊含义:反斜杠(\)、单引号('')、双引号("")。

反斜杠转义字符可以取消紧跟在它后面的单个字符的特殊含义。示例:

当需要转义文本字符串中的多个字符时,可以采用单引号('')。单引号保留其包括起的所有字符的字面含义。:

使用双引号可以阻止通配和shell扩展,但依然允许命令和变量替换。变量替换在概念上命令替换一样

echo命令在shell脚本中被广泛用来显示信息和错误消息。

shell中的循环

bash的for循环结构 使用一下语法。

for VARIABLE in LTST; do

COMMAND VARIABLE

done

其中小写部分是固定不变的。VARIABLE 是变量名,COMMAND VARIABLE表示引用变量的命令块。

在脚本中使用退出代码

使用exit命令。当脚本遇到exit命令时,脚本立即退出且不会对脚本的其余内容进行处理。

可以整数参数(可选的,0-255之间,表示退出代码)来执行exit命令。退出代码传回父进程,将它存储在?变量中,可以通过$?进行访问。

条件结构

if/then结构语法如下:

还有if/then/else结构:

还有if/then/elif/then/else结构

使用正则表达式匹配命令输出中的文本

vim、grep和less命令都可以使用正则表达式。

最简单的完全匹配,即正则表达式中的字符与正在搜索的数据中的类型和顺序均匹配,即为完全匹配。

匹配行首和行尾,要在行首搜索,使用脱字符(^)。要在行尾搜索,使用美元符号($)。

正则表达式使用句点(。)或点(.)来匹配换行符之外的任何单个字符。c.t将搜索包含c加任何单个字符和t的字符串。

c[aou]t会匹配:以c开头,后面跟着a或o或u,然后是t,即cat、cot、cut。

倍数同常与通配符一起使用的机制。倍数应用到正在表达式中的前一位字符,更为常用的倍数之一是星号(*)。

c*t,匹配任何以c开头,后面跟着零个或多个字符,最后以t结尾的数据。

另一类型的倍数将会指示模式中前面字符的期望个数。‘c.\{2\}t’是使用显示倍数的一个示例,它匹配以c开头,后面跟任意字符串,最后以t结尾的任何词语。

正则表达式

选项 描述
. 句点(.)匹配任何单个字符。
前面的项目是可选的,且最多匹配一次。
* 前面的项目将匹配零次或多次。
+ 前面的项目将匹配一次或多次。
{n} 前面的项目恰好匹配n次。
{n,} 前面的项目匹配n次或更多次。
{,m}

前面的项目最多匹配m次。

{n,m} 前面的项目至少匹配n次,但不超过m次。
[:alnum:] 字母数字字符:‘[:alpha:]’和‘[:digit:]’;在'C'语言环境和ASCII字符编码中,它等同于‘[0-9A-Za-z]’
[:alpha:] 字母字符:‘[:lower:]’和'[:upper:]';在'C'语言环境和ASCII字符编码中,它等同于‘[A-Za-z]’。
[:blank:]

空白字符:空格和制表符。

[:cntrl:] 控制字符。在ASCII中,这些字符对应八进制代码000到037和177(DEL)。在其他字符集中,他们为对等字符。
[;digit;] 数字:0 1 2 3 4 5 6 7 8 9 。
[;graph;] 图像字符:‘[:alnum:]’和'[:punct:]'。
[:lower:]

小写字母;在”C“语言环境和ASCII字符编码中,它对应于 a b c d e f g h i j k l m n o p q r s t u v w x y z。

[:print:] 可打印字符:‘[:alnum:]’、'[:punct:]'和空格。
[:punct:] 标点符号;在”C“语言环境和ASCII字符编码中,它对应于!” # $ %&'()*+,-./:;<=>?@[\]^'{|}~。
[:space:] 空格字符;
[:upper:] 大写字母
[:xdigit:] 16进制数字: 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f 。
\b 匹配词语两侧的空字符串。
\B 匹配词语中间的空字符串。
\< 匹配词语开头的空字符串。
\> 匹配词语末尾的空字符串。
\w 匹配词语组分
\W 匹配非词语组分
\s 匹配空格
\S 匹配非空格。

使用grep命令匹配正则表达式

竖线运算符(|),grep命令可与其他命令一起使用。示例:

常见grep选项表

选项 功能
-i  使用所提供的正则表达式,但不会强制区分大小写。
-v 仅显示不包含正则表达式匹配项的行。
-r 将递归地匹配正则表达式的数据搜索应用到一组文件或目录中。
-A number 显示正则表达式匹配项之后的行数。
-B number 显示正则表达式匹配项之前的行数。
-e 可以提供多个正则表达式,并将与逻辑OR一起使用。

 

版权声明
本文为[叛乱的影子1992]所创,转载请带上原文链接,感谢
https://my.oschina.net/sign/blog/4707607