shell学习笔记
1./dev/null用法,运行sh脚本的命令(bash,sh,./,source,.)
2.特殊字符使用
1)# 用来注释,#!说明文件的解释器
2) ; shell脚本一行内可以写多行命令,使用;隔开
3);; 终断case
4) '' 单引号内的所有内容都标记为字符,包括特殊字符,如'#hello'等价于 #hello
5) "" 双引号内的内容可以有转义 如"$filename" 双引号会认为filename是个参数
6)\ 反斜杠转义,其他符号说明:\n 表示新的一行;\r 表示回车;\t 表示水平制表符;\v 表示垂直制表符;\b 表示后退符;\a 表示"alert"(蜂鸣或者闪烁);
\0xx 转义为八进制的ASCII码; " 表示引号字面的意思
7) ` 命令替换 如: cp `mkdir back` test.sh back
8) : 相当于true,可做占位符;
9) ? 三元操作符 ?a:b
10) $ 变量替换
11) () 小括号相当于局部变量,小括号内的命令相当于一个子shell
12) {} 大括号中不允许有空白,除非这个空白被引用转义或引用。功能1是文件名的扩展,功能2是可以看做一个代码块,代码块内的变量对外都是可见的
3.变量和参数
1) 变量引用的方式:加$,另外$后的变量名尽量用{}括起来
2)只读变量的定义方式:readonly 变量名
3) 位置变量.$#(参数个数),$*(字符串形式显示所有参数),$$(脚本运行的当前进程ID号),$?(最后命令的退出状态,0表示无错误,其他值表示有错误,一般用来验证脚本是 否有错误)
4.基本运算符
1)算数运算符:+,-,*,/(除法),%(取余),=,==,!=
2) 关系运算符: -eq,-ne,-gt,-lt,-ge,-le
3) 字符串运算符:=,!=,-Z,-N,str
4) 文件测试运算符:-e,-f,-d,-s,-r,-x,-w,f1 -nt f2,f1 -ot f2
5.控制流
1)if
2)while
3)for
6.函数
7.grep,sed,awk
1)grep -i:模式匹配时忽略大小写 -V:显示不匹配的行 -l:列出匹配模式的文件名称,而不是打印匹配的行 -n:列出检索目标所在的行号 -c:统计匹配的行总数,不显示航信息
2)sed替换、查找
3)awk

浙公网安备 33010602011771号