linux与unix shell编程指南022new

linux与unix shell编程指南022new

ID:34457660

大小:975.32 KB

页数:22页

时间:2019-03-06

linux与unix shell编程指南022new_第1页
linux与unix shell编程指南022new_第2页
linux与unix shell编程指南022new_第3页
linux与unix shell编程指南022new_第4页
linux与unix shell编程指南022new_第5页
资源描述:

《linux与unix shell编程指南022new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、下载第22章创建屏幕输入屏幕输入或数据输入是接受输入(这里指键盘)并验证其有效的能力。如果有效,接受它,如果无效,放弃该输入。前面讲到了基于一些条件的测试函数,例如字符串长度、字符串是数字或字符型,这一章在脚本中将继续使用这些函数。本章内容有:¥验证有效输入。¥增加、删除、修改和查看记录。¥修改脚本的工作文件。本章开始读起来可能有些累人,因此可以先大概看一下,再慢慢细看。验证有效性的代码量很大,这是因为为捕获所有错误,脚本必须测试几乎所有可能的错误。现在在创建一个一般文件以修改系统地过程中逐步实现每一个任务:增加、删除、修改和查

2、看记录。这里也将创建一个个人文件以修改系统。记录文件DBFILE保存下列信息:域长度允许输入描述职员号码10数字雇员代码名20字符雇员名姓20字符雇员姓部门-记帐雇员所在部门IT服务销售权利域间用冒号:分隔,例如::::每一个任务即是一个完整脚本。脚本中一小部分复制于前面的两个例子。这样做是因为本章主要用于显示怎样用文件修改系统。刚开始编写脚本时,最令人头疼的事就是将修改的文件或数据库系统放在一起后的文档清理工作。运行脚本应具有一些菜

3、单选项,与任务或模块相连接或包含在文件里与菜单脚本相关的一系列函数相连接。每一段脚本均执行trap命令,信号2、3和15被忽略。22.1增加记录将记录加入文件,包含以下两个步骤:1)确认输入有效。2)将记录写入文件。第一个任务就是将一些函数放在一起,这些函数测试域是字符型或数字型及域的长度限制,即数据输入有效性检验。有效性检验将用于增加数据和修改数据。幸运的是前面已经编第22章创建屏幕输入253下载好这些函数,检测字符串及长度的函数脚本如下:检测字符串是否为数字型,函数脚本如下:检测字符串是否为字符型,函数脚本如下:当域读取完毕

4、时,调用相应函数,测试其返回值。这里也需要提示以保存屏幕信息直到键入某键删除这些信息,下列函数用到了read_a_char函数。254第四部分基础shell编程下载当用户输入雇员代码后,要确保编号还没有用到,此域必须唯一。测试这一点有几种方法,这里使用grep。grep搜寻字符串_CODE中的雇员编号,如果awk返回空值,则不存在匹配编号,函数返回状态码0。函数如下(这里在grep中使用“$_CODE>”抽取相应匹配,变量用双引号括起来,如果用单引号,则返回空值):以下是检测雇员编号代码段,之后继续讲解其功能。第22章创建屏幕

5、输入255下载所有检测语句均在while循环中(实际上每一个数据输入域均在一单独的while循环中),如果没有有效数据,提示返回初始读位置。读完雇员编号,继续检测域中数据是否存在:if["$NUM"!=""]如果域中没有输入数据。则不执行if语句then部分。else部分在脚本结尾部分,用于显示下列信息:StaffNumber:NoInputDetected,ThisFieldRequiresaNumberthen部分包括对域输入数据的所有有效性检测。假定存在输入,调用a_number函数,测试传输字符串是否为一数字,如果是,函

6、数返回0,如果不是,函数返回1。基于此返回值,设置指针NUM_PASS为0,表示返回值正确(数字型),设置为1,表示返回失败(非数字型)。然后调用函数length_check,参数为字符串及字符串包含字符最大数目。这里为10,如果字符串长度小于10,则返回0,否则返回1。指针LEN_PASS设置为0,表示返回成功(长度不超过最大长度),设置为1,表示返回失败(长度超出最大长度)。接下来检测是否有重复雇员编号。调用函数check_duplicate,如果没有发现重复编号,设置指针DUPLICATE为0,最后测试三个指针变量均为0(

7、无错误),为此使用AND测试,如果条件同时成立,执行then部分语句。如果测试通过,则存在有效域。这时处在while循环中,因此需要用break命令跳出循环。如果有效性测试任何一部分失败,即长度测试或类型测试之一不通过,返回错误信息并显示在屏幕底部。StaffNumber:Non_NumericorTooManyNumbersInField。验证第2和第3域有效性,处理过程一样。有效性验证这次在另一个循环中。这次调用characters函数,检验域是否只包含字符。下述脚本做名字有效性检验:256第四部分基础shell编程下载使用

8、case语句检验部门域(列表见下面),因为公司只包含5个部门,部门域必须是其中之一。注意对每个部门有三个不同的匹配模式,可以由用户键入部门名称加以验证。如果找到匹配模式,用户跳出case语句,并显示有效部门列表。当所有域的有效性验证完成后,将提示用户是否保存此记

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。