- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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分钟左右完
您可能关注的文档
- Lesson-51 PCB知识.ppt
- LED车顶灯投标书正本.doc
- Lesson_45__MARPOL_73、78.ppt
- lesson 7 润滑系统.ppt
- lesson 1 船舶和机械.ppt
- LFT-商行数据中心规划.pptx
- LHGHFEEG第五课 甲骨文和青铜工艺657NXCGD89.ppt
- Lingo_简单教程.ppt
- linux 直流电机.doc
- li 气压带与风带 北半球冬 、夏季气压中心.ppt
- 七章货物的保险.pptx
- 三章国际间接投资.pptx
- 人性假设理论.pptx
- 外研高一英语必修三ModuleIntroduction汇总市公开课获奖课件省名师示范课获奖课件.pptx
- 月相成因优质获奖课件.pptx
- 小学二年级语文课件《狐假虎威》省名师优质课赛课获奖课件市赛课一等奖课件.pptx
- 养羊业概况专题知识讲座.pptx
- 微生物的实验室培养市公开课获奖课件省名师示范课获奖课件.pptx
- 人教版六年级下册式与方程整理与复习市公开课获奖课件省名师示范课获奖课件.pptx
- 必威体育精装版高中精品语文教学:第二单元-第7课-诗三首:涉江采芙蓉、-短歌行、归园田居市公开课获奖课件省名师.pptx
文档评论(0)