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

  

 

  

posted @ 2019-04-17 13:50  菜鸟孤单  阅读(108)  评论(0)    收藏  举报