随笔分类 -  Shell脚本知识

摘要:awk是gawk的链接文件,是一种优良的文本处理工具,实现格式化文本输出,是Linux和Unix现有环境中功能最强大的数据处理引擎之一。这种编程及数据操作语言的最大功能取决于一个人拥有的知识量,使用"man gawk"给出的简述为“模式扫描和处理语言”。 任何awk语句都是由模式和动作组成,一个aw 阅读全文
posted @ 2019-11-20 16:50 苦逼运维 阅读(1502) 评论(0) 推荐(1) 编辑
摘要:在Shell脚本中,可以使用echo的-e选项使显示内容呈现出不同的颜色。 格式1:echo -e "\033[背景颜色代码;文字颜色代码m 输出的字符串 \033[0m" 格式2: echo -e "\e[背景颜色代码;文字颜色代码m 输出的字符串 \e[0m" 其中颜色代码3x代表字的颜色,4x 阅读全文
posted @ 2019-11-08 16:46 苦逼运维 阅读(369) 评论(0) 推荐(0) 编辑
摘要:(1).bash命令检测Shell脚本中的语法错误 bash -v [脚本] (2).bash命令查看Shell脚本详细执行过程 bash -x [脚本] 阅读全文
posted @ 2019-11-08 15:04 苦逼运维 阅读(8059) 评论(0) 推荐(1) 编辑
摘要:sed流编辑器是一行一行的处理文件内容的,正在处理的内容存放在模式空间(缓冲区)内,处理完成后按照选项的规定进行输出或文件的修改。除非使用重定向存储输出,否则文件内容不会发生改变。 sed主要用于自动编辑一个或多个文件,简化对文件的反复操作。并且sed也支持正则表达式,如果想使用扩展正则需要添加参数 阅读全文
posted @ 2019-11-08 10:22 苦逼运维 阅读(863) 评论(0) 推荐(0) 编辑
摘要:函数是一个脚本代码块,你可以对它进行自定义命名,并且可以在脚本中任意位置使用这个函数。如果想要这个函数,只要调用这个函数的名称就可以了。使用函数的好处在于模块化以及代码可读性强。 (1).函数的创建语法 函数的创建方法一: 函数的创建方法二: 注意:函数名称在当前脚本必须唯一。 调用函数的方法: 调 阅读全文
posted @ 2019-10-23 11:31 苦逼运维 阅读(3391) 评论(2) 推荐(1) 编辑
摘要:shift命令用于对参数的向左移动,通常用于在不知道传入参数个数的情况下依次遍历每个参数,然后进行相应的处理(常见与Linux中各种程序的启动脚本)。在扫描处理脚本程序的参数时,经常要用到shift命令。 shift命令每执行一次,参数序列顺次左移一个位置,$#的值减1,用于分别处理每个参数,移出去 阅读全文
posted @ 2019-10-22 10:52 苦逼运维 阅读(1084) 评论(0) 推荐(0) 编辑
摘要:在使用while或for循环语句过程中,也许碰到某个特殊条件,我们需要跳过当次循环或整个循环,这是就需要借助break和continue。 break表示跳出本层循环,break n表示跳出循环的层数。continue表示跳过本次循环,continue n表示跳过n次循环。 实例如下: 多层循环嵌套 阅读全文
posted @ 2019-10-18 16:16 苦逼运维 阅读(16452) 评论(0) 推荐(0) 编辑
摘要:while语法格式: while语句流程控制图: 实例: 一样可以使用双小括号(())来替换原有的判断条件,如下: 阅读全文
posted @ 2019-10-18 15:16 苦逼运维 阅读(443) 评论(0) 推荐(0) 编辑
摘要:在shell中使用for循环语句时,参数列表有时候需要将空格纳入参数当中,这时就不好使用空格作为分隔符。如下例中,我实际想要输出的是a1、a2、b1、b2以及hello world,但却输出了如下内容: 默认情况下,shell会以空格、制表符、换行符作为分隔符,但遇到以上情况时,需要使用IFS来自定 阅读全文
posted @ 2019-10-18 14:05 苦逼运维 阅读(7723) 评论(0) 推荐(1) 编辑
摘要:for语法格式: for语句流程控制图: 实例: 参数列表可以更复杂些,部分特殊符号需要转义 参数列表还可以从变量中读取,可以是多个变量 参数列表还可以从命令中取值 (1).扩展1:自定义shell分隔符 自定义Shell分隔符 (2).扩展2:C语言风格的for循环 C语言风格的for语法格式: 阅读全文
posted @ 2019-10-18 11:51 苦逼运维 阅读(286) 评论(0) 推荐(0) 编辑
摘要:case语法格式: case语句流程控制图: 实例: case中的匹配符*也是表达式中的一种,不是所有case语句都需要,请根据需求使用。而且变量或表达式前可以使用数字+竖号(|)表示该变量或表达式的序号。 阅读全文
posted @ 2019-10-18 10:27 苦逼运维 阅读(546) 评论(0) 推荐(0) 编辑
摘要:shell常见的通配符,注意与正则稍有不同: a*b,a与b之间可以有任意长度的字符,也可以没有。 例如:aabcb,ab,azxcb... a?b,a与b之间必须但也只能存在一个字符,该字符可以是任意字符。 例如:aab,abb,acb... a[xyz]b,a与b之间必须但也只能存在一个字符,该 阅读全文
posted @ 2019-10-16 09:44 苦逼运维 阅读(7864) 评论(0) 推荐(2) 编辑
摘要:判断命令test一般用于脚本当中,可以简写为中括号[ ]。其会对跟随的条件进行判断,一般可以分为数值判断、字符串判断和文件判断。语法格式为test [判断条件]或[ 判断条件 ],注意中括号[ ]与判断条件之间必须存在空格,还需注意判断条件的判断符号与比较值之间也需要存在空格。 如果是test单独使 阅读全文
posted @ 2019-10-12 15:37 苦逼运维 阅读(1341) 评论(0) 推荐(0) 编辑
摘要:(1).if语句 语法格式: if语句流程图: 实例:判断命令是否执行成功,成功则输出语句This is ok. (2).双分支if语句 语法格式: 双分支if语句流程图: 实例:判断命令是否执行成功,成功则输出This is ok.,否则输出This is not ok. (3).多分支if语句 阅读全文
posted @ 2019-10-10 13:57 苦逼运维 阅读(573) 评论(0) 推荐(0) 编辑
摘要:read命令可以读取标准输入的值,并赋予变量。一次可以读取多个变量的值,变量名或标准输入之间使用空格隔开。如果read命令后面没有指定变量名,那么读取到的值将自动赋予特殊变量REPLY。 read [选项] [变量名 [变量名 变量名 ...]] (1).常用选项 (2).实例 输入多个变量名,读取 阅读全文
posted @ 2019-10-10 10:29 苦逼运维 阅读(1416) 评论(0) 推荐(0) 编辑
摘要:如果想写一个能够自动处理输入输出的脚本又不想面对C或Perl,那么expect是最好的选择。它可以用来做一些Linux下无法做到交互的一些命令操作。 (1).安装和使用expect expect是不会自动安装的所以需要使用命令进行安装,这里使用yum即可: 在脚本中使用expect的方法一般有两种: 阅读全文
posted @ 2019-05-12 13:33 苦逼运维 阅读(938) 评论(0) 推荐(0) 编辑
摘要:在shell脚本中计算一般会涉及到let、$(())、$[]、bc(另扩展expr)。其中let、$(())、$[]都是用来做基本整数运算,bc可以用来做浮点运算。 (1).let、$(())、$[] 因为这三个基本等价,所以放在一起说明。 首先来看下let命令 再看$(()) 最后看$[] 注意: 阅读全文
posted @ 2019-05-04 20:48 苦逼运维 阅读(5454) 评论(0) 推荐(0) 编辑
摘要:变量来源于数学,是计算机语言中能存储计算结果或能表示值的抽象概念。变量可以通过变量名来访问。 (1).shell变量的设置规则 1.变量名通常由大小写字母、数字和下划线(_)组成,但不能以数字开头 2.通过等号(=)为变量分配值,等号两边不能有空格 3.变量存储的数据类型是整数值和字符串值 4.在对 阅读全文
posted @ 2019-05-03 20:47 苦逼运维 阅读(3764) 评论(0) 推荐(0) 编辑
摘要:(1).bash(或sh) [脚本的相对路径或绝对路径] 可以看到sh命令实际指向的是bash命令,sh只是bash的一个软链接 (2).source(或.) [脚本的相对路径或绝对路径] .(点)是等同于source的,最常见的使用是在重新加载环境变量时。 (3).sh < [脚本名称]或者cat 阅读全文
posted @ 2019-05-03 16:11 苦逼运维 阅读(3579) 评论(0) 推荐(0) 编辑