Linux课程设计shell编程Word文档格式.docx
- 文档编号:16104631
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:8
- 大小:495.91KB
Linux课程设计shell编程Word文档格式.docx
《Linux课程设计shell编程Word文档格式.docx》由会员分享,可在线阅读,更多相关《Linux课程设计shell编程Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
●编写一个shell脚本routine,实现日程提醒功能;
●编写一个shell脚本makememo,实现备忘录管理功能;
●(选作)修改脚本,改进或增加新的功能。
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.0by201948*****
GoodEvening!
用户名
TodayisTueMar1219:
25:
30CST
♦提醒用户当日的日程安排
查询备忘录文件memo,显示今日的日程安排。
图2日程提醒
2.1.3运行脚本(此部分操作截图见图3、4)
1.执行脚本。
♦为routine脚本设置执行权(chmod755routine),运行routine脚本(./routine),调试并检查运行结果。
提示:
变换memo文件内容,检查日程提示是否正确。
图3执行脚本
2.自动执行脚本。
♦编辑主目录下的.bashrc文件,将~/201948/exp3/routine命令行加到文件末尾(注意将your-sid替换为你的学号)。
重新启动“终端”,检查脚本是否能成功地自动执行。
图4自动执行脚本
2.1.4编写备忘录管理脚本
1.在exp3目录下编写一个Shell脚本makememo,完成以下功能:
♦显示初启信息及菜单
显示程序初启信息(程序名、编者学号等信息),显示程序的菜单,例如:
makememov1.0by201948
*********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/201948/exp3/memo||echoNothing.
3.2备忘录管理(含选作)
脚本的初始代码老师已经给出,难度不大,主要是需要看懂,学会灵活运用sed命令处理文本文件。
选作部分根据日期查找很容易做,可是根据序号查找遇到了困难,用grep操作的话,会显示所有含有查找序号的日程,可是用sed-n"
${num}p"
file就能够轻松实现。
4.程序清单
4.1Routine
echo'
*****routinev1.0by201948*****'
hour='
date+%H'
case$hourin
08|09|10|11|12)echo"
GoodMorning!
Vanilla"
;
13|14|15|16|17)echo"
GoodAfternoon!
18|19|20|21|22)echo"
GoodEvening!
*)echo"
Hello!
esac
echoTodayis`date`
echo-n"
memo:
"
day=`date+%D`
4.2Makememo(含选作)
#!
/bin/bash
echo"
makememov1.0by201948"
#显示版本和作者信息,须替换your-sid
MEMOFILE=$HOME/201948/exp3/memo#定义备忘录文件名
add_memo()#向备忘录中添加一条记录
{
echo-n"
输入要添加的日程项:
"
readitem
echo$item>
>
$MEMOFILE
sort-o$MEMOFILE$MEMOFILE
echo"
日程添加已完成"
}
del_by_date()#按给定日期删除一条备忘录记录
输入要删除的日程项(mm/dd/yy):
sed-i"
/$item/d"
日程删除已完成"
del_by_num()#按给定序号删除一条备忘录记录
set`wc-l$MEMOFILE`
输入要删除的日程项编号(1-$1):
readnum
${num}d"
search_by_date()#按给定日期chaxun一条备忘录记录
输入要查找的日程项(mm/dd/yy):
grep$item$HOME/201948/exp3/memo||echoNothing.
search_by_num()#按给定序号chaxun一条备忘录记录
输入要查找的日程项编号(1-$1):
sed-n"
$HOME/201948/exp3/memo||echoNothing.
print_menu()#显示菜单
*****************MENU*****************"
1.显示日程2.添加日程"
3.删除日程(按日期)4.删除日程(按序号)"
5.显示菜单6.退出"
7.查找日程(按日期)8.查找日程(按序号)"
*****************************************"
print_menu
whiletrue
do
输入操作选择(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操作系统基础、原理与应用,北京:
清华大学出版社,2月。
[2]NeilMatthew,RichardStones.Linux程序设计(第3版).陈健等译.北京:
人民邮电出版社,.
[3]MarkG.Sobell.Linux命令、编辑器与Shell编程.杨明军等译.北京:
清华大学出版社,.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 课程设计 shell 编程