欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    《控制脚本流程》PPT课件.ppt

    • 资源ID:71670267       资源大小:298.49KB        全文页数:35页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《控制脚本流程》PPT课件.ppt

    控制脚本流程第20讲 控制脚本流程 第2页 共35页引 言v如何测试表达式的逻辑值?v如何设计分支结构?v如何设计循环结构?第20讲 控制脚本流程 第3页 共35页【问题的提出】【问题的提出】vGeecy软件开发公司的开发人员Tom所开发的通讯录管理脚本phone.sh的改进版本如下:tomgeecy:$cat phone.sh#!/bin/bashread Count file.txtCount=$(Count+1)echo$Count count_file.txt./phone.sh第20讲 控制脚本流程 第4页 共35页【问题的提出】【问题的提出】(续续)v该版本比旧版本已经有了很大的改进,能够满足一般的使用。但是根据Tom的开发经验,该版本至少存在四大缺陷:(1)脚本运行的稳定性不高,因为该脚本严重依赖于辅助文件count_file.txt,一旦该文件被以外破坏,该脚本将不能正常工作;(2)运行性能不高,因为该脚本在运行过程中需要频繁读写三个文件,而从该脚本的功能来看,运行过程中需要频繁读写的文件应该只有数据文件“file.txt”;(3)功能单一,因为目前只有增加功能,还缺乏基本的搜索功能;(4)用户界面不够友好,应该使用菜单式的用户界面。因此Tom需要继续改进该脚本。第20讲 控制脚本流程 第5页 共35页【问题分析】【问题分析】v如果要提高稳定性,就要想办法避免使用辅助文件count_file.txt。v最大值就在数据文件file.txt的最后一行的第一个数据域。只需要想办法在增加一行新数据之前把该值读出来,然后增加一,就可以构造出下一个编号。v命令tail,能够从一个文本文件的最后一行起,连续抽取若干行数据显示到屏幕。第20讲 控制脚本流程 第6页 共35页【问题分析】【问题分析】(续续)v如果上述的稳定性问题解决了,那么只需要避免使用脚本的递归调用就可以实现整个运行过程只需要频繁读写一个文件,即数据文件file.txt。v只要找到能够重复运行某一部分脚本的替代方法,那么脚本的递归调用这种方法就可以“退役”了。第20讲 控制脚本流程 第7页 共35页【问题分析】【问题分析】(续续)v对于搜索功能的实现,可以使用grep命令来完成。第20讲 控制脚本流程 第8页 共35页【问题分析】【问题分析】(续续)v菜单式的用户界面的实现原理,就是首先打印若干个菜单项的内容到屏幕上,等待用户选择其中一个功能,脚本程序根据用户的键盘输入来判断用户的选择,从而进行相应功能的操作。然后重复。第20讲 控制脚本流程 第9页 共35页测试表达式测试表达式vtest命令能够对表达式进行测试并求出True或False的逻辑值。例如:test$Name=Linusvtest命令的语法要求被测试的表达式中的比较运算符(例如这里的“=”)的左右两边必须有空格。第20讲 控制脚本流程 第10页 共35页测试表达式测试表达式(续续)vtest命令可以一次测试多个表达式。这些表达式之间需要使用选项“-a”或“-o”连接。例如:test$Name=Linus-a$Country=Chinav为了有更好的可读性,用户可以使用方括号“”来代替test命令。例如:$Name=Linus 第20讲 控制脚本流程 第11页 共35页设计分支结构设计分支结构v分支结构提供给用户一种流程控制的能力,能够让用户根据某些条件作出判断,然后有所选择地执行某些语句。v使用if语句和case语句都可以实现分支结构。第20讲 控制脚本流程 第12页 共35页设计分支结构设计分支结构(续续)vif语句的基本格式为:if thenelsefi第20讲 控制脚本流程 第13页 共35页设计分支结构设计分支结构(续续)#!/bin/bashecho -n Do you know the answer?(y/n)read Resultif$Result =y thenecho Good!echo Congratulations!elseecho Bad!echo Work hard!fiecho Finished!第20讲 控制脚本流程 第14页 共35页设计分支结构设计分支结构(续续)vcase语句的基本格式为:case inPattern1);Pattern2);.*);esac第20讲 控制脚本流程 第15页 共35页设计分支结构设计分支结构(续续)#!/bin/bashecho -n Enter a word (dozen or score):read Strcase$Str in dozen)echo 12 ;score)echo 20 ;*)echo It is neither a dozen nor a score.;esac第20讲 控制脚本流程 第16页 共35页测试字符串测试字符串v对字符串的测试,除了测试是否相等,还有其他的一些常用的测试。选选 项项作作 用用string如果string的长度不为零,则值为True,否则为False-z string如果string的长度为零,则值为True,否则为FalseString1=String2如果string1与string2相等,则值为True,否则为FalseString1!=String2如果string1与string2不相等,则值为True,否则为False第20讲 控制脚本流程 第17页 共35页测试算术式测试算术式vShell的变量是字符串类型,如果要把变量的内容作为数值进行比较,则需要使用算术测试选项。选选 项项作作 用用-eq等于(Equal)-ne不等于(Not Equal)-gt大于(Greater Then)-ge大于(Greater Then)或等于(Equal)-lt小于(Less Then)-le小于(Less Then)或等于(Equal)第20讲 控制脚本流程 第18页 共35页测试文件测试文件选选 项项作作 用用-e File如果文件File存在(Exist),则为True-s File如果文件File存在且文件大小(Size)大于零,则为True-f File如果文件File存在且是普通文件(File),则为True-d File如果文件File存在且是目录(Directory),则为True-b File如果文件File存在且是块(Block)特殊文件,则为True-c File如果文件File存在且是字符(Character)特殊文件,则为True-L File如果文件File存在且是符号链接(Link)文件,则为True第20讲 控制脚本流程 第19页 共35页测试文件测试文件(续续)选选 项项作作 用用-r File如果文件File存在且是可读的(Readable),则为True-w File如果文件File存在且是可写的(Writable),则为True-x File如果文件File存在且是可执行的(Executable),则为True-O File如果文件File存在且属于当前用户(Owner),则为True-G File如果文件File存在且属于当前用户组(Group),则为TrueFile1 nt File2如果文件File1新于(Newer Then)File2,则为TrueFile1 ot File2如果文件File1旧于(Older Then)File2,则为True第20讲 控制脚本流程 第20页 共35页设计循环结构设计循环结构v循环结构提供了重复执行一段脚本的能力。v脚本程序可以使用两种风格的循环语句来实现循环结构:while循环和for循环。第20讲 控制脚本流程 第21页 共35页设计循环结构设计循环结构(续续)v使用while语句的格式是:while do done第20讲 控制脚本流程 第22页 共35页设计循环结构设计循环结构(续续)#!/bin/bashCount=1while$Count -le 10 do echo$Count Count=$(Count+1)done第20讲 控制脚本流程 第23页 共35页设计循环结构设计循环结构(续续)vfor语句实现循环结构的一种格式是:for(Expression1;Expression2;Expression3)do done第20讲 控制脚本流程 第24页 共35页设计循环结构设计循环结构(续续)#!/bin/bashfor(Count=1;Count=10;Count=Count+1)do echo$Countdone第20讲 控制脚本流程 第25页 共35页设计循环结构设计循环结构(续续)vfor语句实现循环结构的另一种格式是:for in do done第20讲 控制脚本流程 第26页 共35页设计循环结构设计循环结构(续续)#!/bin/bashfor FileName in ls do if -f /$FileName then echo The contents of/$FileName is:cat /$FileName fiDone第20讲 控制脚本流程 第27页 共35页【解决方案】【解决方案】#!/bin/bashFile=file.txtif -s$File then Count=tail-n 1 file.txt|cut-d:-f1 Count=$(Count+1)else Count=1001fi第20讲 控制脚本流程 第28页 共35页【解决方案】【解决方案】(续续)while truedo clear echo 0.Exit echo 1.Add phone number echo 2.Search name or phone number echo-n Your choice(0,1 or 2):read Key case$Key in 0)exit;第20讲 控制脚本流程 第29页 共35页【解决方案】【解决方案】(续续)1)clear echo$Count:echo -n Enter your name:read Name echo -n Enter your phone number:read Phone echo$Count:$Name:$Phone file.txt Count=$(Count+1);第20讲 控制脚本流程 第30页 共35页【解决方案】【解决方案】(续续)2)clear echo-n Input a keyword:read Word clear grep$Word$File echo Press enter to continue.read Enter ;esacDone第20讲 控制脚本流程 第31页 共35页练练 习习1、编写一个Shell脚本,从键盘读入5个整数。然后显示最大数、最小数以及平均值。2、编写一个Shell脚本,显示Fibonacci数列的前20项。例如:0,1,1,2,3,5,8,13,21.第20讲 控制脚本流程 第32页 共35页练练 习习(续续)3、编写一个Shell脚本,从键盘上接收两个文件名,如果两个文件都存在则交换两个文件的内容,否则应给出出错信息。4、编写一个shell脚本,产生并输出如下的序列:1,2,3,2,3,4,3,4,5,4,5,6 98,99,100第20讲 控制脚本流程 第33页 共35页练练 习习(续续)5、Cell宽带数据公司的客户服务中心对值班员工的工作质量进行跟踪评价,评价标准是客户对值班员工的“满意”投票数量与总投票数量的比值。如下表所示:Tenny需要编写一个shell脚本,读入“满意”投票数量和总投票数量,然后计算并输出相应的评定等级。比比 值值(%)等等 级级Less then 70AverageBetween 70 and 95GoodGreater then 95Excellent第20讲 控制脚本流程 第34页 共35页练练 习习(续续)6、Cell宽带数据公司向客户提供一种菜单式的查询服务,如下表所示:Tenny需要编写一个shell脚本,显示服务菜单。当客户选择某一项服务后输出相应的服务内容。序序 号号服服 务务 名名 称称服服 务务 内内 容容1查询费用(Bill query)显示客户每月的费用2业务咨询(Consulting)获取业务的使用方法3最新消息(News)显示产品推广和优惠活动等4投诉(Complain)接受客户的投诉和建议第20讲 控制脚本流程 第35页 共35页练练 习习(续续)7、Cell宽带数据公司需要录入客户的资料并保存到文件,每个客户的资料保存在单独的一行。格式如下:客户号:姓名:地址:电话:邮政编码其中要求客户号由系统自动产生,从10001起。Tenny需要编写一个Shell脚本,提示输入每项数据,并按照规定的格式保存到文件。录入完一个客户的资料后,提示是否继续。按“y”继续录入下一客户,“n”退出。

    注意事项

    本文(《控制脚本流程》PPT课件.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开