Linux课程设计报告shell编程_第1页
Linux课程设计报告shell编程_第2页
Linux课程设计报告shell编程_第3页
Linux课程设计报告shell编程_第4页
Linux课程设计报告shell编程_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

参考文献-.z.课程设计报告课程名称Linu*操作系统课程设计指导教师玲起止日期2014-实验项目实验三Shell编程学院信息与通信工程学院专业电子信息工程学生班级/**成绩指导老师签字课程设计概述理解Shell程序的执行环境和执行过程,掌握Shell语言的一般语法规则,能用bash编写,调试简单的shell程序。课程设计的目的本实验的目的是使学生理解Shell程序的执行环境和执行过程,掌握Shell语言的一般语法规则,能用bash编写简单的shell程序。课程设计的容编写一个shell脚本routine,实现日程提醒功能;编写一个shell脚本makememo,实现备忘录管理功能;(选作)修改脚本,改进或增加新的功能。设计原理图1Shell工作流程实验步骤操作编辑备忘录(vi编辑)在e*p3目录下,编辑一个备忘录文件memo,其中的每行为一项日程安排,格式是:mm/dd/yy日程提示以下是一个memo文件的例子:06/03/14mother'sbirthday06/08/14lunchwithjoe06/12/14callzhang06/14/14meeting4pm06/15/14shoppingwithmary编写日程提醒脚本(此部分操作截图见图2)在e*p3目录下编写一个Shell脚本routine,完成以下功能:显示初启信息脚本启动时首先输出一些初始信息,包括程序名称与编者、当前的日期与时间、适当的问候语等,格式自定。例如:*****routinev1.0by2012010948*****GoodEvening!用户名TodayisTueMar1219:25:30CST2014提醒用户当日的日程安排查询备忘录文件memo,显示今日的日程安排。图2日程提醒运行脚本(此部分操作截图见图3、4)执行脚本。为routine脚本设置执行权(chmod755routine),运行routine脚本(./routine),调试并检查运行结果。提示:变换memo文件容,检查日程提示是否正确。图3执行脚本自动执行脚本。编辑主目录下的.bashrc文件,将~/2012010948/e*p3/routine命令行加到文件末尾(注意将your-sid替换为你的**)。重新启动“终端”,检查脚本是否能成功地自动执行。图4自动执行脚本编写备忘录管理脚本在e*p3目录下编写一个Shell脚本makememo,完成以下功能:显示初启信息及菜单显示程序初启信息(程序名、编者**等信息),显示程序的菜单,例如:makememov1.0by2012010948*********MENU*********1.*****2.****3.******4.…接收并处理用户的输入根据用户的输入的菜单编号,执行相应的功能。运行脚本(此部分操作截图见图5)(选做)修改脚本(此部分操作截图见图5)添加查找功能(按日期)添加查找功能(按序号)图5备忘录管理实验结论与评价日程提醒此部分操作较为简单,大部分代码老师都已经给出来了,遇到困难的地方是没有办法准确地显示出当日的日程,在老师的帮助下发现原因是系统的显示时间格式必须和编辑的备忘录时间格式相同。在这个操作中主要掌握了两个技巧,一是如何根据时间显示不同的问候语,主要是会用case语句,二是如何匹配日期,用下面的语句。主要是grep的用法。echo$daygrep$day$HOME/2012010948/e*p3/memo||echoNothing.备忘录管理(含选作)脚本的初始代码老师已经给出,难度不大,主要是需要看懂,学会灵活运用sed命令处理文本文件。选作部分根据日期查找很容易做,但是根据序号查找遇到了困难,用grep操作的话,会显示所有含有查找序号的日程,但是用sed-n"${num}p"file就可以轻松实现。程序清单Routineecho'*****routinev1.0by2012010948*****'hour='date+%H'case$hourin08|09|10|11|12)echo"GoodMorning!Vanilla";;13|14|15|16|17)echo"GoodAfternoon!Vanilla";;18|19|20|21|22)echo"GoodEvening!Vanilla";;*)echo"Hello!Vanilla";;esacechoTodayis`date`echo-n"memo:"day=`date+%D`echo$daygrep$day$HOME/2012010948/e*p3/memo||echoNothing.Makememo(含选作)*!/bin/bashecho"makememov1.0by2012010948"*显示版本和作者信息,须替换your-sidMEMOFILE=$HOME/2012010948/e*p3/memo*定义备忘录文件名add_memo()*向备忘录中添加一条记录{echo-n"输入要添加的日程项:"readitemecho$item>>$MEMOFILEsort-o$MEMOFILE$MEMOFILEecho"日程添加已完成"}del_by_date()*按给定日期删除一条备忘录记录{echo-n"输入要删除的日程项(mm/dd/yy):"readitemsed-i"/$item/d"$MEMOFILEecho"日程删除已完成"}del_by_num()*按给定序号删除一条备忘录记录{set`wc-l$MEMOFILE`echo-n"输入要删除的日程项编号(1-$1):"readnumsed-i"${num}d"$MEMOFILEecho"日程删除已完成"}search_by_date()*按给定日期cha*un一条备忘录记录{echo-n"输入要查找的日程项(mm/dd/yy):"readitemgrep$item$HOME/2012010948/e*p3/memo||echoNothing.}search_by_num()*按给定序号cha*un一条备忘录记录{set`wc-l$MEMOFILE`echo-n"输入要查找的日程项编号(1-$1):"readnumsed-n"${num}p"$HOME/2012010948/e*p3/memo||echoNothing. }print_menu()*显示菜单{echo"*****************MENU*****************"echo"1.显示日程2.添加日程"echo"3.删除日程(按日期)4.删除日程(按序号)"echo"5.显示菜单6.退出"echo"7.查找日程(按日期)8.查找日程(按序号)"echo"*****************************************"}print_menuwhiletruedoecho-n"输入操作选择(1-8):"readchoicecase$choicein1)cat-n$MEMOFILE;;2)add_memo;;3)del_by_date;;4)del_by_num;;5)print_menu;;7)search_by_date;;8)search_by_num;;6)echoBye!;break;;*)echoI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论