Linux课程设计shell编程.doc

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

Linux课程设计shell编程.doc

《Linux课程设计shell编程.doc》由会员分享,可在线阅读,更多相关《Linux课程设计shell编程.doc(9页珍藏版)》请在冰豆网上搜索。

Linux课程设计shell编程.doc

课程设计报告

课程名称Linux操作系统课程设计

指导教师张玲

起止日期2014-03-01至2014-06-13

实验项目实验三Shell编程

学院信息与通信工程学院

专业电子信息工程

学生姓名

班级/学号

成绩

指导老师签字

1.课程设计概述

理解Shell程序的执行环境和执行过程,掌握Shell语言的一般语法规则,能用bash编写,调试简单的shell程序。

1.1课程设计的目的

本实验的目的是使学生理解Shell程序的执行环境和执行过程,掌握Shell语言的一般语法规则,能用bash编写简单的shell程序。

1.2课程设计的内容

l编写一个shell脚本routine,实现日程提醒功能;

l编写一个shell脚本makememo,实现备忘录管理功能;

l(选作)修改脚本,改进或增加新的功能。

1.3设计原理

图1Shell工作流程

2.实验步骤

2.1操作

2.1.1编辑备忘录(vi编辑)

在exp3目录下,编辑一个备忘录文件memo,其中的每行为一项日程安排,格式是:

mm/dd/yy日程提示

以下是一个memo文件的例子:

06/03/14mother'sbirthday

06/08/14lunchwithjoe

06/12/14callzhang

06/14/14meeting4pm

06/15/14shoppingwithmary

2.1.2编写日程提醒脚本(此部分操作截图见图2)

在exp3目录下编写一个Shell脚本routine,完成以下功能:

1.显示初启信息

¨脚本启动时首先输出一些初始信息,包括程序名称与编者、当前的日期与时间、适当的问候语等,格式自定。

例如:

*****routinev1.0by2012010948*****

GoodEvening!

用户名

TodayisTueMar1219:

25:

30CST2014

¨提醒用户当日的日程安排

查询备忘录文件memo,显示今日的日程安排。

图2日程提醒

2.1.3运行脚本(此部分操作截图见图3、4)

1.执行脚本。

¨为routine脚本设置执行权(chmod755routine),运行routine脚本(./routine),调试并检查运行结果。

提示:

变换memo文件内容,检查日程提示是否正确。

图3执行脚本

2.自动执行脚本。

¨编辑主目录下的.bashrc文件,将~/2012010948/exp3/routine命令行加到文件末尾(注意将your-sid替换为你的学号)。

重新启动“终端”,检查脚本是否能成功地自动执行。

图4自动执行脚本

2.1.4编写备忘录管理脚本

1.在exp3目录下编写一个Shell脚本makememo,完成以下功能:

¨显示初启信息及菜单

显示程序初启信息(程序名、编者学号等信息),显示程序的菜单,例如:

makememov1.0by2012010948

*********MENU*********

1.xxxxx

2.xxxx

3.xxxxxx

4.…

¨接收并处理用户的输入

根据用户的输入的菜单编号,执行相应的功能。

2.1.5运行脚本(此部分操作截图见图5)

2.1.6(选做)修改脚本(此部分操作截图见图5)

1.添加查找功能(按日期)

2.添加查找功能(按序号)

图5备忘录管理

3.实验结论与评价

3.1日程提醒

此部分操作较为简单,大部分代码老师都已经给出来了,遇到困难的地方是没有办法准确地显示出当日的日程,在老师的帮助下发现原因是系统的显示时间格式必须和编辑的备忘录时间格式相同。

在这个操作中主要掌握了两个技巧,一是如何根据时间显示不同的问候语,主要是会用case语句,二是如何匹配日期,用下面的语句。

主要是grep的用法。

echo$day

grep$day$HOME/2012010948/exp3/memo||echoNothing.

3.2备忘录管理(含选作)

脚本的初始代码老师已经给出,难度不大,主要是需要看懂,学会灵活运用sed命令处理文本文件。

选作部分根据日期查找很容易做,但是根据序号查找遇到了困难,用grep操作的话,会显示所有含有查找序号的日程,但是用sed-n"${num}p"file就可以轻松实现。

4.程序清单

4.1Routine

echo'*****routinev1.0by2012010948*****'

hour='date+%H'

case$hourin

08|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";;

esac

echoTodayis`date`

echo-n"memo:

"

day=`date+%D`

echo$day

grep$day$HOME/2012010948/exp3/memo||echoNothing.

4.2Makememo(含选作)

#!

/bin/bash

echo"makememov1.0by2012010948"#显示版本和作者信息,须替换your-sid

MEMOFILE=$HOME/2012010948/exp3/memo#定义备忘录文件名

add_memo()#向备忘录中添加一条记录

{

echo-n"输入要添加的日程项:

"

readitem

echo$item>>$MEMOFILE

sort-o$MEMOFILE$MEMOFILE

echo"日程添加已完成"

}

del_by_date()#按给定日期删除一条备忘录记录

{

echo-n"输入要删除的日程项(mm/dd/yy):

"

readitem

sed-i"/$item/d"$MEMOFILE

echo"日程删除已完成"

}

del_by_num()#按给定序号删除一条备忘录记录

{

set`wc-l$MEMOFILE`

echo-n"输入要删除的日程项编号(1-$1):

"

readnum

sed-i"${num}d"$MEMOFILE

echo"日程删除已完成"

}

search_by_date()#按给定日期chaxun一条备忘录记录

{

echo-n"输入要查找的日程项(mm/dd/yy):

"

readitem

grep$item$HOME/2012010948/exp3/memo||echoNothing.

}

search_by_num()#按给定序号chaxun一条备忘录记录

{

set`wc-l$MEMOFILE`

echo-n"输入要查找的日程项编号(1-$1):

"

readnum

sed-n"${num}p"$HOME/2012010948/exp3/memo||echoNothing.

}

print_menu()#显示菜单

{

echo"*****************MENU*****************"

echo"1.显示日程2.添加日程"

echo"3.删除日程(按日期)4.删除日程(按序号)"

echo"5.显示菜单6.退出"

echo"7.查找日程(按日期)8.查找日程(按序号)"

echo"*****************************************"

}

print_menu

whiletrue

do

echo-n"输入操作选择(1-8):

"

readchoice

case$choicein

1)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;;

*)echoIllegalOption;;

esac

done

参考文献

[1]张玲.Linux操作系统基础、原理与应用,北京:

清华大学出版社,2014年2月。

[2]NeilMatthew,RichardStones.Linux程序设计(第3版).陈健等译.北京:

人民邮电出版社,2007.

[3]MarkG.Sobell.Linux命令、编辑器与Shell编程.杨明军等译.北京:

清华大学出版社,2007.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1