《shell脚本介绍》PPT课件.ppt_第1页
《shell脚本介绍》PPT课件.ppt_第2页
《shell脚本介绍》PPT课件.ppt_第3页
《shell脚本介绍》PPT课件.ppt_第4页
《shell脚本介绍》PPT课件.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程内容,什么是shell基本思路变量、条件、判断和程序控制函数调试正则表达式,SHELL入门,什么是shell,用户与linux系统间的接口功能强大bash,Shell程序的特点,可快速、简单地完成编程适合于编写一些执行相对简单任务的小工具易于配置、维护和可移植执行效率较低,各种shell,管道和重定向,重定向输出ls-lout.txtls-lout.txt以下命令可以让标准输出和错误输出分别重定向pkillsleeppkillout.txt2pkillerr.txtpkillsleeppkillout.txt2domore$filedone,while循环,for特别适合于对一系列字符串进行处理,而while适合于处理不知道执行次数的情况whileconditiondostatementsdone示例,一个简单的密码验证程序echo“Enterpassword:”readpass;while“$pass”!=“abc123”;doecho“Error,tryagain”readpass;done,until语句,语法:untilconditionndostatementsdone与while相似,只是条件反过来了untilwho|grep“$1”/dev/nulldosleep60doneechoeaecho“*$1hasjustloggedin*”,case语句,语法casevarinpattern|pattern)statements;pattern|pattern)statements;esac注意,每个模式行用双分号(;)结束case“$var”inyes)echoyes;no)echono;*)echodefault;esac,case语句,case只匹配一个分支,即使其他的分支也成立case“$var”inyes|y|Yes|YES)echoOK;n*|N*)echoNo;*)echootheresaccase“$var”inyes|y|Yes|YES)echoOK;nN*)echoNo;*)echootheresac,命令列表,and列表statement1result=“$(foo)”可以使用local关键字在shell函数中声明局部变量return0被认为是逻辑真,命令,命令,内部命令和外部命令内部命令是由shell实现的,它不能做为外部程序被调用,效率较高大多数内部命令同时提供独立运行的程序版本,这是PISOX规范所要求的,命令,break命令用于跳出for,whileuntil循环:命令空命令有时会被用于简化条件逻辑,相当于truewhile:被当作无限循环$(var:=value)以防止shell把var当作一个命令continue使for,while,untile跳到下一次循环,source和点(.),.命令点(.)用于在当前shell中执行命令通常,当脚本执行外部命令或脚本时,会创建新的环境(子shell),但.可以让我们在当前环境下执行命令可以使用.让当前shell的环境设置改变source同.命令,echo,输出结尾带有换行的字符串如何去掉换行符Linux常用的解决方法:echon“stringtooutput”还有:echoe“stringtooutputc”c表示去掉换行符为了更好的移植性时,可考虑使用printf,eval命令,允许对参数求值,shell的内置命令foo=10 x=fooy=$xecho$y以上代码结果为$foofoo=10 x=fooevaly=$xecho$y结果为10eval允许代码被随时生成并运行,非常有用,但调试复杂,exitn命令,使用脚本程序以退出码n结束运行如果没有指定一个脚本的退出码,那最后一条命令的状态将被用作返回值在shell中,退出码0代表成功,1125是可以使用的错误代码。其余数字具有保留含义,export命令,将做为它参数的变量导出到子shell中有效。默认情况下,一个shell中创建的变量在子shell中是不可用的。一旦一个变量被导出,它就可以被该shell调用的任何脚本使用,也可以被后续依次调用的任何shell使用,expr命令,将参数当作表达来求值x=exprdoecho“$1”shiftdone,trap命令,指定当接收到信号后将要采取的行动trap有两个参数:trapcommandsignal第一个参数是接收到信号所采取的行动,第二个是什么信号如果command为-,则会重置信号处理方式为默认如果command为,则会忽略某个信号trapINT,unset,从环境中删除变量和函数foo=“Hello”echo$foounsetfooecho$foo作用和foo=差不多,但不同,find命令,findpathoptionstestsactions选项,find命令,测试部分,find命令,组合测试可以用圆括号改变测试的优先级,不过为了不让shell处理圆括号,需要进行转义find.(-name“_*”ornewerfile2)typef-print,find命令,actions部分find.newerfile2typefexeclsl;魔术字符串是-exec或-ok命令的一个特殊类型,它将被当前文件的完整路径取代,grep命令,GeneralRegularExpressionParse通用正则表达式解析器语法:greapoptionsPATTERNFILES如果没有提供文件名,将搜索标准输入,正则表达式,正则表达式本质是一个匹配字符串,正则表达式,正则表达式,grepe$words2.txtgrepa:blank:words2.txtgrepTh.:space:words2.txtgrepEa-z10words2.txt,命令执行,算术扩展,捕获一条命令执行的结果,可以用:var=commandvar=$(command)expr命令可以处理一些简单的算术命令,但它会调用一个新的shell来执行,效率低,一种更好的办法是$()x=0while“$x”ne10;doecho$xx=$($x+1)done,参数扩展,Sforiin12;doprocess$i_tmpdone常见的替换规则,示例,echo$foo:-barfoo=funecho$foo:-barfoo=/usr/bin/X11/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论