shell脚本
shell脚本本身是一个工具
在写脚本之前,就要明白:这个功能到底如何实现?
curl访问文件源代码,查看网站状态;
才能通过shell(bash)所提供的逻辑关系,来串联这些语句,从而实现,脚本自动化运维;
1、bash的特性
history
重定向原理
shell cli界面的快捷键
ctrl +w删除一个单词,以恐惧而为分隔符
文本通配globbing
2、编程原理
编程原理:二进制 程序:指令+数据+【逻辑关系】
编程语言的分类:高级语言:1、解释 2、面向过程 3、变量
驱动
指令:
Linux 系统执行的命令(基础)
逻辑关系:
循环执行
循环 for while until
分支 if case
exit break continue 函数(return) sleep
数据:
变量
echo print printf
输入 read
bash支持的默认变量
环境变量(可以直接在代码中使用$ RANDOM env set) cd -$OLDPWD $PWD
传参 $# $? $1 $2 $$ $! esc+.
自定义变量:
局部变量
函数(本地变量)local
数组
3、文本处理三剑客
正则表达式(globbing)
grep 行过滤
grep egrep fgrep
sed 行编辑器
sed的子命令s
awk 报告生成
独立的编程语言解释器;他有自己独立的语法格式;
awk的工作原理:1、取 2、分隔 3、处理
awk 选项.... 'program' file....
1、option -F -V
2、program
1、print printf (占位符、修饰符、(注意:不能忘记回车\n))
2、变量
内置变量:NF ($NF\变量调用)
FS OFS RS ORS FNR NR ARGV FILENAME
3、地址定界(正则表达式)
1、空 2、 NR>=10&&NR<=20 3、 /pat1/ 4、/pat1/,/pat2/ 5、 BEGIN|END 6、pat1?pat2:pat3
4、运算符
1、数值运算符:%【取余】 //【取整】
随机整数:$RANDOM%100+1
2、比较运算符 < > <= >= !=
3、逻辑运算符 && || !
4、赋值运算 = += ++ --
5、action
6、语法
if switch while do-while for
break continue next(控制默认循环)
if (条件语句){执行语句}
if (条件语句){执行语句}else{执行语句}
初始语句;while(判断条件){循环体}{循环体;初始值控制语句}
for(初始语句;判断语句;初始值控制语句){循环体}
for(变量 in 列表){循环体}
7、数组
列遍历的数据统计: