复习:
1,%s/xyz/&er/g 全部替换,只要匹配到的就替换
2,上次课的IP作业,后面不能用\1 ,\1表示前后得到的都是一样的
3,单词锚定的考验
4,[0-9]|[1-9][0-9] 或者[1-9]?[0-9]这两个其实是等价的
5,思考:正则表达式过滤手机号码,邮箱,QQ号码(4-11位),身份证号等等
shell编程基础
1,执行脚本的方式,为了不用每次执行脚本都要输入路径,我们只需要把脚本放入$变量对应的任意一个路径都可以
2,/root/bin 路径虽然$PATH会打印出来,但是默认并没有,需要手动创建一下,只要执行一次,就会hash到内存里面
3,hash -r就全部都清空了,hash -d hello.sh只删除一个
4,只要后缀是sh,自动生成脚本头,这个怎么做的呢?
脚本调试
1,检查脚本中的语法错误 bash -n /path/to/some_script。只能检查语法错误,其他查不了,非常有意义的
2,调试执行 bash -x /path/to/some_script,查看脚本的执行过程,有可能没有语法错误,只是逻辑错误,最后结果不是你想要的,会分别显示每一句的结果,调试的时候,命令的前面会有加号,两个加号表示命令是嵌套的,先内层后外层
3,脚本中某一行出了错误,是否还会往下执行,要分情况
4,语法错误的结果就是,默认不会继续执行下去,和前面的命令错误不会组织你继续往下执行,后面一种情况,危险性比较大
5,拿到一个脚本我们不是马上去执行,而是先去检查一下
6,即使测试成功,也不要马上去生产环境,先充分测试在去跑
7,接下来看一下,编程脚本中用到的非常普遍的技术,第一个变量
变量
1,系统带$ 符号的都是变量 USER HOOSTNAME PWD OLDPWD HISTSIZE PS1
2,引用变量一般必须加$符号
3,变量相当于存储内存的地址空间,存在内存里面
4,变量赋值和引用
5,之前的值还存在原来的地方,只不过以后会回收,加个标记这个空间可以用了,数据没有马上删除,好像一个文件
6,内容合一变,所以叫做变量
7,一个文件放入一个变量得话,格式变了,成为一行了,但是如果echo的时候,$NAME加上双引号,输出的就是标准格式了
8,一般变量不会放一篇文章的很少见
9,name3=$name1 修改name1原因就是里面存的是地址