1.正则表达式(regularexpression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。 2.在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式,它将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念。 正则表达式分为: 正则表达式基本元字符 正则表达式拓展元字符 元字符使正则表达式具有处理能力。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。 No.1正则表达式基本元字符 基本正则表达式元字符 元字符 示例功...
什么是数组? 数组也是一种变量,常规变量只能保存一个值,数组可以保存多个值 普通数组:只能用整数作为数组的索引--0 下标 关联数组:可以使用字符串作为数组的索引 普通数组定义: [root@linux-serverscript]books=(linuxshellawksed)---在python中叫列表 引用:echo${array_name[index]}引用 [root@linux-serverscript]echo${books[0]} linux [root@linux-serverscript]echo${books[1]} shell [root@l...
function(功能)功能函数 完成特定功能的代码片段 函数必须先定义才能使用 优点:避免重复的代码 定义函数---怎么写函数脚本,如何定义 调用函数--怎么使用函数,本地调用,2。通过其他脚本调用(必须先定义再调用) 取消函数---unsetfunc_name 函数传参----和脚本传参类似 命名空间:在shell语言中函数的命名空间是函数内和函数外定义变量是一样的,函数内外不能赋值同样名字的变量 变量:如果在同一个命名空间可以用,如果不再同一个命名空间就不能用 函数变量使用的范围:默认,函数里的变量会在函数外面生效 函数变量如果不让在其他空间用使用:local分开 local...
定义函数脚本 [root@localhostscript]cata.sh !/usr/bin/bash check_net(){ echo"正在检查网络通信" ping-c1www.baidu.com2&>/dev/null if[$?-eq0];then &n...
shift命令 位置参数可以用shift命令左移。比如shift3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift1。 测试shift命令(x_shift3.sh) [root@linux-serverscript]catx_shift3.sh !/bin/bash shift echo"第一个位置参数:$1" [root@linux-serverscript]bashx_shift3.sh23 第一个位置参数:3 若用户要求Shell在不知道位置变量个数的情况下,还能逐个的把参...
continue、break、exit命令 Linux脚本中的breakcontinueexit 1.break 结束并退出本次循环 2.continue 在循环中不执行continue下面的代码,转而进入下一轮循环 3.exit 退出脚本 常带一个整数给系统,如exit0 检测: [root@localhostscript]vimbreak.sh !/usr/bin/bash foriin{1..10} do if[$i-eq7];then continue break &nb...
索引及切片[root@linux-server]a=12345678[root@linux-server]echo${a:5}从左往右第5位开始截取,留下后三位678[root@linux-server]echo${a:3:4}从第3位开始截取,留下后四位的,剩下的都不要。4567[root@linux-server]echo${a:2:-1}从左往右第2位开始截取,从右往左截取第一位34567[root@linux-server]echo${a:2:-2}3456 参数解释:用冒号截取:echo$a:::从哪里截取留那里。 脚本案例:[root@localhost]vimtest11.sh!...
[root@newrain]echo${url.} 从前往后匹配到“.”最短匹配 sina.com.cn [root@newrain]echo${url.} 从前往后匹配到“.”,最长匹配 cn [root@newrain]echo${url%.} 从后往前匹配到“.”,最短匹配 www.sina.com [root@newrain]echo${url%%.} 从后往前匹配到“.”,最长匹配 www [root@newrain]echo${urla.} 不加 www.sina.com.cn [root@newrain]echo${...
实战 [root@linux-server]a=123456123789 [root@linux-server]echo${a/1/} 第一次匹配的被替换 23456123789 [root@linux-server]echo${a/1/0} 第一次匹配到1替换成0 023456123789 [root@linux-server]echo${a//1/} 全局的匹配被替换 2345623789 [root@linux-server]echo${a...
拓展 basename&dirname basename命令 basename是去除目录后剩下的名字,取文件名 例: [root@linux-server]temp=/home/temp/1.test [root@linux-server]base=`basename$temp` [root@linux-server]echo$base 1.test dirname是获取目录名 例: [root@linux-server]temp=/home/temp/1.test [root@linux-server]dir=`dirname$temp` [root@lin...
接上一部分 数字 -eq(equal)等于 -ne(notequal)不等于 -ge(Greaterthanorequalto)大于等于 -le(Lessthanorequalto)小于等于 -gt(greaterthan)大于 -lt(lessthan)小于 文件 test -f存在且是正规文件 -d存在且是目录 -h存在且是符...
例:脚本if.sh,必须在脚本后加上适当的参数脚本才能正确执行 [root@linux-serverscript]vimif.sh !/bin/bash if["$1"="hello"];then echo"Hello!Howareyou?" elif["$1"=""];then echo"YouMUSTinputparameters" else echo"Theonlyacceptparameterishello" fi [root@linux-serverscript]chmod+xif.sh ...
case语句是shell中流控制的第二种方式,语法如下: case$变量in pattern1) list1 ;; ---------------------结尾。 pattern2) list2 &nbs...
示例2: [root@linux-serverscript]vimsystem_tools.sh !/usr/bin/envbash cat<<-EOF +-------------------------------------------------------------------------+ |System_toolsV1.0| +-------------------------------------------------------------------------+ |a.StopAndDisabledFirewalld.| |b.DisabledSELi...
shell循环-for语句 foriin{取值范围}for是关键字i是变量名in是关键字 do循环体的开始 循环体 done循环体的结束 实战1: [root@linux-serverscript]vimfor.sh !/usr/bin/envbash Author: Date:2019// foriin{1..100} do echo$i done [root@linux-serverscript]vimfor1.sh !/bin/bash for((i=1;i<=5;i)) do echo"$i" done [root@linux-serverscript]chmod+x...
[root@linux-serverscript]vimip.sh !/usr/bin/envbash Author: src_ip="192.168.246" foriin{2..254} do { ping-c1$src_ip.$i&>/dev/null if[$?-eq0];then echo"alive:$src_ip.$i...
[root@linux-serverscript]vimwhile.sh !/usr/bin/envbash Author: while1>0 do cat<<-EOF +-------------------------------------------------------------------------+ | System_toolsV1.0 &nb...
案例三嵌套循环 [root@localhostscript]vimtest4.sh !/usr/bin/bash foriin{1..100} do while[$i-lt50] do echo$i leti done done [root@localhostscript]chmod+xtest4.sh [root@localhostscript]bashtest4.sh 练习题: 1.输入用户输入的参数,直到用户输入"end"结束循环 2.给脚本service.sh进行修改,当执行的时候要求输入(...
变量引用转义:\1.当一个字符被引用时,其特殊含义被禁止,把有意义的变的没意义,把没意义的变的有意义转义案例:[root@linux-serverscript]echoyounow$1250younow250[root@linux-serverscript]echoyounow\$1250younow$1250 完全引用:''强引硬引指的是被引号包围起来的变量名不会进行不会进行解析,原样变量名原样输出,这种方式比较适合定义显示纯字符串的情况,不希望解析变量、命令等的场景。部分引用:""弱引软引指的是被引号包围起来的变量名会先进行解析,然后将变量的解析结果输出来。这种方式适合字符串中附带有变量和...
脚本运行 创建bash脚本(shell脚本) 1.创建脚本文件 指定命令解释器 注释 编写bash指令集合 2.修改权限 bash脚本执行 chmod+xscript ./scripts /shelldoc/scripts source./scripts使用当前shell执行比如cd/tmp会改变当前shell环境,但是其他的方式不会 bashscripts 变量置换 命令替换 取命令结果用。把命令的结果拿出来 [root@linux-server]a=`date+%m%d` [root@linux-server]echo$a 1225 [root@linux-server]a=$(...