《控制脚本流程》PPT课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《控制脚本流程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《控制脚本流程》PPT课件.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、控制脚本流程第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该版本比旧版本已经有了很大的改
2、进,能够满足一般的使用。但是根据Tom的开发经验,该版本至少存在四大缺陷:(1)脚本运行的稳定性不高,因为该脚本严重依赖于辅助文件count_file.txt,一旦该文件被以外破坏,该脚本将不能正常工作;(2)运行性能不高,因为该脚本在运行过程中需要频繁读写三个文件,而从该脚本的功能来看,运行过程中需要频繁读写的文件应该只有数据文件“file.txt”;(3)功能单一,因为目前只有增加功能,还缺乏基本的搜索功能;(4)用户界面不够友好,应该使用菜单式的用户界面。因此Tom需要继续改进该脚本。第20讲 控制脚本流程 第5页 共35页【问题分析】【问题分析】v如果要提高稳定性,就要想办法避免使用辅
3、助文件count_file.txt。v最大值就在数据文件file.txt的最后一行的第一个数据域。只需要想办法在增加一行新数据之前把该值读出来,然后增加一,就可以构造出下一个编号。v命令tail,能够从一个文本文件的最后一行起,连续抽取若干行数据显示到屏幕。第20讲 控制脚本流程 第6页 共35页【问题分析】【问题分析】(续续)v如果上述的稳定性问题解决了,那么只需要避免使用脚本的递归调用就可以实现整个运行过程只需要频繁读写一个文件,即数据文件file.txt。v只要找到能够重复运行某一部分脚本的替代方法,那么脚本的递归调用这种方法就可以“退役”了。第20讲 控制脚本流程 第7页 共35页【问
4、题分析】【问题分析】(续续)v对于搜索功能的实现,可以使用grep命令来完成。第20讲 控制脚本流程 第8页 共35页【问题分析】【问题分析】(续续)v菜单式的用户界面的实现原理,就是首先打印若干个菜单项的内容到屏幕上,等待用户选择其中一个功能,脚本程序根据用户的键盘输入来判断用户的选择,从而进行相应功能的操作。然后重复。第20讲 控制脚本流程 第9页 共35页测试表达式测试表达式vtest命令能够对表达式进行测试并求出True或False的逻辑值。例如:test$Name=Linusvtest命令的语法要求被测试的表达式中的比较运算符(例如这里的“=”)的左右两边必须有空格。第20讲 控制脚
5、本流程 第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语
6、句的基本格式为: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讲 控
7、制脚本流程 第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如果stri
8、ng的长度为零,则值为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小于(Le
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制脚本流程 控制 脚本 流程 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内