Linux课程设计shell编程

上传人:鲁** 文档编号:496146699 上传时间:2022-09-10 格式:DOC 页数:9 大小:589.50KB
返回 下载 相关 举报
Linux课程设计shell编程_第1页
第1页 / 共9页
Linux课程设计shell编程_第2页
第2页 / 共9页
Linux课程设计shell编程_第3页
第3页 / 共9页
Linux课程设计shell编程_第4页
第4页 / 共9页
Linux课程设计shell编程_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Linux课程设计shell编程》由会员分享,可在线阅读,更多相关《Linux课程设计shell编程(9页珍藏版)》请在金锄头文库上搜索。

1、word课程设计报告课程名称Linux操作系统课程设计指导教师X玲起止日期2014-03-01至 2014-06-13 实验项目 实验三 Shell编程 学院信息与通信工程学院 专业电子信息工程学生某某班级/学号成绩指导教师签字1. 课程设计概述理解Shell程序的执行环境和执行过程,掌握Shell语言的一般语法规如此,能用bash编写,调试简单的shell程序。1.1 课程设计的目的本实验的目的是使学生理解Shell程序的执行环境和执行过程,掌握Shell语言的一般语法规如此,能用bash编写简单的shell程序。1.2 课程设计的内容l 编写一个shell脚本routine,实现日程提醒功

2、能;l 编写一个shell脚本makememo,实现备忘录管理功能;l 选作修改脚本,改良或增加新的功能。1.3 设计原理图1 Shell工作流程2. 实验步骤2.1 操作2.1.1 编辑备忘录vi编辑在exp3目录下,编辑一个备忘录文件memo,其中的每行为一项日程安排,格式是:mm/dd/yy日程提示以下是一个memo文件的例子:06/03/14 mothers birthday06/08/14 lunch with joe06/12/14 call zhang06/14/14 meeting 4pm06/15/14 shopping with mary2.1.2 编写日程提醒脚本此局部操

3、作截图见图2在exp3目录下编写一个Shell脚本routine,完成以下功能:1. 显示初启信息 脚本启动时首先输出一些初始信息,包括程序名称与编者、当前的日期与时间、适当的问候语等,格式自定。例如:* routine v1.0 by 2012010948 *Good Evening!用户名Today is Tue Mar 12 19:25:30 CST 2014 提醒用户当日的日程安排查询备忘录文件memo,显示今日的日程安排。图2日程提醒2.1.3 运行脚本(此局部操作截图见图3、4)1. 执行脚本。 为routine脚本设置执行权chmod 755 routine,运行routine脚

4、本./routine,调试并检查运行结果。提示:变换memo文件内容,检查日程提示是否正确。图3执行脚本2. 自动执行脚本。 rc文件,将/2012010948/exp3/routine命令行加到文件末尾注意将your-sid替换为你的学号。重新启动“终端,检查脚本是否能成功地自动执行。图4 自动执行脚本2.1.4 编写备忘录管理脚本1. 在exp3目录下编写一个Shell脚本makememo,完成以下功能: 显示初启信息与菜单显示程序初启信息程序名、编者学号等信息,显示程序的菜单,例如:makememo v1.0 by 2012010948* MENU *1.xxxxx2. xxxx3. x

5、xxxxx4. 接收并处理用户的输入根据用户的输入的菜单编号,执行相应的功能。2.1.5 运行脚本(此局部操作截图见图5)2.1.6 选做修改脚本此局部操作截图见图51. 添加查找功能按日期2. 添加查找功能按序号图5 备忘录管理3. 实验结论与评价3.1 日程提醒此局部操作较为简单,大局部代码教师都已经给出来了,遇到困难的地方是没有方法准确地显示出当日的日程,在教师的帮助下发现原因是系统的显示时间格式必须和编辑的备忘录时间格式一样。在这个操作中主要掌握了两个技巧,一是如何根据时间显示不同的问候语,主要是会用case语句,二是如何匹配日期,用下面的语句。主要是grep的用法。echo $day

6、grep $day $HOME/2012010948/exp3/memo | echo Nothing.3.2 备忘录管理含选作脚本的初始代码教师已经给出,难度不大,主要是需要看懂,学会灵活运用sed命令处理文本文件。选作局部根据日期查找很容易做,但是根据序号查找遇到了困难,用grep操作的话,会显示所有含有查找序号的日程,但是用sed-n$numpfile就可以轻松实现。4. 程序清单4.1 Routineecho * routine v1.0 by 2012010948 *hour=date+%Hcase $hour in 08|09|10|11|12) echo Good Morning

7、!Vanilla; 13|14|15|16|17) echo Good Afternoon!Vanilla; 18|19|20|21|22) echo Good Evening!Vanilla; *) echo Hello!Vanilla;esacecho Today is dateecho -n memo: day=date +%Decho $daygrep $day $HOME/2012010948/exp3/memo | echo Nothing.4.2 Makememo含选作#!/bin/bashecho makememo v1.0 by 2012010948 #显示版本和作者信息,须

8、替换your-sidMEMOFILE=$HOME/2012010948/exp3/memo #定义备忘录文件名add_memo() #向备忘录中添加一条记录 echo -n 输入要添加的日程项: read item echo $item $MEMOFILE sort -o $MEMOFILE $MEMOFILE echo 日程添加已完成del_by_date() #按给定日期删除一条备忘录记录 echo -n 输入要删除的日程项(mm/dd/yy): read item sed -i /$item/d $MEMOFILE echo 日程删除已完成del_by_num() #按给定序号删除一条备

9、忘录记录 set wc -l $MEMOFILE echo -n 输入要删除的日程项编号(1-$1): read num sed -i $numd $MEMOFILE echo 日程删除已完成search_by_date() #按给定日期chaxun一条备忘录记录 echo -n 输入要查找的日程项(mm/dd/yy): read item grep $item $HOME/2012010948/exp3/memo | echo Nothing.search_by_num() #按给定序号chaxun一条备忘录记录 set wc -l $MEMOFILE echo -n 输入要查找的日程项编号

10、(1-$1): read num sed -n $nump $HOME/2012010948/exp3/memo | echo Nothing.print_menu() #显示菜单 echo * MENU * echo 1. 显示日程 2. 添加日程 echo 3. 删除日程(按日期) 4. 删除日程(按序号) echo 5. 显示菜单 6. 退出 echo 7. 查找日程(按日期) 8. 查找日程(按序号) echo *print_menuwhile truedo echo -n 输入操作选择1-8: read choice case $choice in 1) cat -n $MEMOFI

11、LE; 2) add_memo; 3) del_by_date; 4) del_by_num; 5) print_menu; 7) search_by_date; 8) search_by_num; 6) echo Bye!; break; *) echo Illegal Option; esac done参考文献1 X玲. Linux操作系统 根底、原理与应用,:清华大学,2014年2月。2 Neil Matthew, Richard Stones. Linux程序设计第3版. 陈健等译. :人民邮电, 2007.3 Mark G. Sobell. Linux命令、编辑器与Shell编程. 杨明军等译. :清华大学, 2007. /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号