文档详情

最全面实用的LinuxShell脚本编程知识点总结….docx

发布:2016-11-12约4.64万字共82页下载文档
文本预览下载声明
Shell脚本编程的常识 (这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用) 七种文件类型 d??????????? 目录?????????????????????????????????????????????????????? l???????????? 符号链接 s???????????? 套接字文件?????????????????????????????????????????? b??????????? 块设备文件 c??????????? 字符设备文件?????????????????????????????????????? p??????????? 命名管道文件 -???????????? 普通文件 正则表达式 从一个文件或命令输出中抽取或过滤文本时。可使用正则表达式(RE),正则表达式是一些特殊或不很特殊的字符串模式的集合。 ?????? 基本的元字符集: ?????? ^?????????????????? 只匹配行首。 ?????? $?????????????????? 只匹配行尾。 ?????? *?????????????????? 一个单字符后紧跟*,匹配0个或多个此单字符。 ?????? []?????????????????? 匹配[]内字符,可以是一个单字符,也可以是字符序列。可以使 ????????????? 用-来表示[]内范围,如[1-5]等价于[1,2,3,4,5]。 \??????????????????? 屏蔽一个元字符的特殊含义,如\$表示字符$,而不表示匹配行 ????????????????? ? 尾。 ?????? .?? ????????????? 匹配任意单字符。 ?????? pattern\{n\}?? 匹配pattern出现的次数n ?????? pattern\{n,\}m匹配pattern出现的次数,但表示次数最少为n ?????? pattern\{n,m\} 匹配pattern出现的次数在n与m之间(n,m为0-255) 几个常见的例子: ?????? 显示可执行的文件:ls –l | grep …x...x..x ?????? 只显示文件夹:ls –l | grep? ^d ?????? 匹配所有的空行:^$ ?????? 匹配所有的单词:[A-Z a-z]* ?????? 匹配任一非字母型字符:[^A-Z a-z] ?????? 包含八个字符的行:^……..$(8个.) 字符类描述 以下是可用字符类的相当完整的列表: [:alnum:] 字母数字 [a-z A-Z 0-9] [:alpha:] 字母 [a-z A-Z] [:blank:] 空格或制表键 [:cntrl:] 任何控制字符 [:digit:] 数字 [0-9] [:graph:] 任何可视字符(无空格) [:lower:] 小写 [a-z] [:print:] 非控制字符 [:punct:] 标点字符 [:space:] 空格 [:upper:] 大写 [A-Z] [:xdigit:] 十六进制数字 [0-9 a-f A-F] 尽可能使用字符类是很有利的,因为它们可以更好地适应非英语 locale(包括某些必需的重音字符等等). shell的引号类型 shell共有四种引用类型: ?????? “ ”????????? 双引号 ?????? ‘ ’?????????? 单引号 ` ` ??????? 反引号 \??????????? 反斜线 l??????? “ ” 可引用除$、` 、\ 、外的任意字符或字符串,“ ”中的变量能够正常显示变量值。 l??????? ‘ ’与“ ”类似,不同在于shell会忽略任何的引用值。 ????????????? 例如: GIRL=‘girl’ ??? ??????????????????? echo “The ‘$GIRL’ did well” ????????????? 则打印:The ‘girl’ did well l??????? ` `用于设置系统命令的输出到变量,shell会将` `中的内容作为一个系统命令并执行质。 ????????????? 例如:echo `date` 则打印当前的系统时间。 l??????? \ 用来屏蔽特殊含义的字符:? *? +? ^? $? `? “? |? ? 例如:expr 12 \* 12 将输出144 变量设置时的不同模式: valiable_name=value?????????? 设置实际值到 variable_name中 valiable_name+value?????????? 如果设置了variable_name,则重设其值 valiable_name:?val
显示全部
相似文档