linux入门教程之编写Shell管理脚本(二).ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux入门教程之编写Shell管理脚本(二)

* 使用if语句的多分支结构,实际上也可以达到相同的效果,但当分支较多时,嵌套的if结构将使脚本的可行性差,不易理解 使用case分支语句结构,则可以使不同的分支情况一目了然 case后边的“变量值”逐一与模式1、模式2……等逐一进行比较,直到找到与之相匹配的值,然后执行该模式下的命令序列,当遇到双分号“;;”后跳转至esac表示结束分支。如果一直找不到相匹配的值,则执行最后一个模式“*)”后的默认命令序列,直到遇到esac后结束分支 * 该脚本仅用于帮助学员理解case语句的使用,不具有实际使用意义(实际用时可以将echo语句换成对应的操作命令),如果时间允许,建议给学员演示一下 注意强调:/etc/init.d/ 目录下的各类系统服务脚本中,大量使用了case分支语句结构,大家课下的时候可以多去看一看 。 —— 这里可以找几个服务脚本做例子,如/etc/init.d/crond * 教员讲解案例需求,分析代码,如果时间允许,建议切换到虚拟机环境演示脚本执行结果(直接复制脚本代码,或备课时预先准备好) 匹配模式中可以使用方括号表示一个连续的范围,例如“[0-9]”;使用竖杠符号“|”表示或,例如“A|B”(A或者B) * until 循环的结构与while命令类似,简单介绍即可,“until通过检测其后接命令的返回值“$?”来判断是否退出循环 until:直到”测试条件“成立时终止循环,而while是:当”测试条件“成立时进行循环 即:until在测试条件为假(非0)时执行循环,条件为真时(0)退出循环,正好与while循环相反 * 简单讲解shift语句操作位置变量的原理即可,结合下一页案例进行介绍,无需演示 生活案例类比:好比去医院做体检(或义务鲜血等)时一样,负责某项体检(例如采血)的医生只需检查他面前的这一个病人(相当于$1)就可以了,而不用管后面还有多少个病人,检查完这一个病人以后,会喊”下一个“(相当于做shift操作),然后下一个病人会到他面前来等待检查 * $# 为预定义变量,表示位置参数的个数 本例中的summer.sh相当于一个简单的加法器程序 * 简单介绍其作用即可 在使用for、while或until循环语句以及case分支语句的过程中,当满足特定的条件时可能会需要中断循环体的执行、或者需要直接跳转到开头重新判断测试条件,该怎么办呢? 这时候,可以使用break和continue语句对执行流程进行控制,这两个语句与在其他大部分编程语言中的含义是类似的 break即“中断”的意思,用于跳出当前所在的循环体,但是并不退出程序 。执行break命令后将跳到done语句之后,执行done之后的语句,不再执行循环体do…done间的命令 * 简单介绍其作用即可 continue即“继续”的意思,用于暂停本次循环,跳转至循环语句的顶部重新测试条件,本次执行过程中continue后的命令序列将被忽略 continue和break语句都是用在for、while或until循环语句以及case语句中,并且一般都是配合着条件判断语句一起使用 * 通过在脚本文件中使用函数,可以大大减少程序的代码行数,简化程序的复杂度 * 与Shell变量的定义赋值不一样,Shell函数必须先进行定义才能使用,两种定义格式中后者更常用一些 调用函数的语句要在定义该函数的语句之后 要调用函数时,只需要直接使用函数名称即可,注意不需要加小括号 已经定义的函数就相当于脚本内部设置的命令一样,也可以使用位置参数 * 在脚本内部,已经定义的函数就好比“内部命令”一样,可作为执行语句直接使用 * 总结本次课程的主要内容,明确学员还存在哪些疑问需要解答 参考问题: 1. 条件判断命令/表达式的书写形式是什么(test、[ ])? 2. 如何判断一个文件是否存在,如何判断一个变量值是否为0,如何判断上一条命令是否执行成功? 3. if语句结构的作用是什么,有哪几种分支类型,各自的语法是什么? 4. for循环与while循环有什么区别,while循环与until循环有什么区别? 5. case语句的每一个分支中,以何种方式表示执行结束(双分号 ;;)? 6. ……? * 阶段一的指导子阶段 1、教师介绍案例需求 —— 公司配备了一台Linux服务器用于分公司员工的技术培训,因此需要经常成批量的添加用户帐号;另外该服务器还用于运行培训部的Web站点,需要经常监控网站服务程序的运行状态 2、在介绍完案例需求后,教师也可以向学员提问如何解决该问题 —— 根据学员具体情况,可适当降低脚本容量、难度(建议将 案例一 Step1 部分 布置为课后作业),对关键步骤予以提示或演示 * 阶段一的指导子阶段(续) (2个脚本控制在45分钟左右完

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档