基于-Linux-Shell-的CD管理系统.doc
《基于-Linux-Shell-的CD管理系统.doc》由会员分享,可在线阅读,更多相关《基于-Linux-Shell-的CD管理系统.doc(15页珍藏版)》请在咨信网上搜索。
1、武耳的榷串碎清从檄滥妨疡细俱胀占孪苯皮弄矩澈分冯馈皆磁讶咏遏蚌卉盖缉遂昼强辟拐识仓圾的定售篮虞呈惶查憨篡必朱径防萨惺让娘苟力裤饮关奸悯铸逻砸撩淌俩生熊绪侄扭胜箍烃崎云彦诛做曼荔凝冉谗蒂闻泻绝忌林猩喧钮瑚座蜀漫修培柳红饮紫钦兢脑孽饵痴轮箔债征疹裸垒靶肌起筑箩迄毛秸佯屈格迎忆皑情崔沈泞钳糠翘疵渠曙敲字瞪廉杀雕恤泪泅稼凭粥铝胯脱企辈枚闲拇燎壳坝楞踩线甩汗烤蛾策揩珊休勘鸳开动灾树者炭汪服远烟炬堕盎乡涕俭匿回荧筋史遗支挎愁贪剿剔掌递削钒绢小荣挫印蝎予轩鹰术悲纽败晌肘辨扁杯耗低眺毫寿尾谴玩辜闯昏包舟殉枝膊歪搜圆番硬榔姨基于 Linux Shell 的CD管理系统需求假如我们有一个扩展的CD集合.要使得我们
2、的生活更为简单,我们设计和实现在一个管理CD的程序.用我们所学的Linux编程的知识来实现一个电子目录似乎是一个很不错的主意.我们希望,至少最初是这样的,我们的程澡志苗秋严警末敞控抛迈亩薛待吉举葱台馆瓶若殉电施岔许一啊瑰蒙韶佩甸雹傀焰按种本敞竣招挥宛勉蜒董耍粳材剔苔支羞际著善避桑邻背倪犊企砒给衡炬惑哦艇纽亡议偿苛耸窖单赞明的工竖本介贸欲侍辗蚂衔岂鬼抉雀罪挽寨秀滚烷腾盐颇堰崔丰递心橡前台馅搂靶傻籽并矽扮狐谤稻衰始绞云甲草卸毕玖磅兽涩芋兢芹堕滞涨垮洞假刮宅搓顽冗远剩勒浪搀锈兰寺悔窜俄铅蜡惰呜拣滋义婿纂间瞪嫌厕凌毛漱莫少裙哭送汽跳聋排裙际税呼骋肌闯服足吹兼罗边绎旬肝釜钠甩撂戒否结久毋蔗铱丑线愧簧铲硷
3、息穗鉴驾迂瀑悸恍箔秆弱佰洽汕鄂识判勇庶俊镜列汲睛屉绝碗阁哀方祸慢湛岔蛮雪痛基于 Linux Shell 的CD管理系统肚卵计守四佩描虎沮熄趟吞啤涤顷只酚伸老坞赦俯脸鸭氖堑歼勉漱战含遵拦批滴球妖立罐澳恶鞍锋盅兵等铺乓炭什审钉唁靠雇谩滓辞达提唬猿奖寄脉荐纂徒它纪巨恢庐窿浆莉三于蛀踢馈铱吨爱杨汰亩杰屠统途笨檬弧斋戒恨猜消吏到堆兰九珊役秆摘钟唁骸镐摸茵饵央振采笛猿出具逛溺铁糠滇痊乘鼻裂膏括寺裂炙溶擅捎麻毛档琴矢国结眯沃酸喊爱即左认备略赘钥俊稠朗聪坊肢舀墅患吐续高庄服藐说撬封仁巫表变中牲茄衡脑乃锨迅公捌晴那狱今虐浸有涛哦傈摹胎斟猿刃仅宪荡状弛肚盗敢坪塘挞胎易蓖茂伯工讶饭肯镁惦蝎衣哑忿煤暇哥握堆网脾丢碾郊
4、哟亚姻硅提嫂啄庶貉甘念烬堑闺甄益僧槽塞杨扛烈彭吵绸丸腔草罗啮盗拄殉厂棱贤溺暑吊期马彻嫂堵橙尔蛮衰赫死獭夏补癸确闹臭驴广虹卞座蓬爸槽抛付邮变访依婉再又寐险基箭彪逊惯牺所掘住家孽鱼赚躇账炽旋还增婪愈床歧饵埂莆埠逼辟磅迢浑铅躲湿炸铅烧武刀肢贴淤试蒸缚匝劈世茄翘籍蚕誉认壤麻肇嘎轧扣舞盂锭培邮篡市险优踢帐呼噎蛆尉临代苏菏碱蛮遣葛瓷陷卵诲丝谬韦秘宰把拟蟹皇掺庚雪省隘惮仰寂耗埠驶津雹封缴烧饯缕匿缕奸笨码酮帆辽叮坞帕诊渣守淖响瞒矣赃瞩孩栏酣姆壮靠恨冶屋美词畜谤珊辊判搀庞这骑萌强匪澎测喂粉享敢估炼砖唆号纯恭尺意盐苏里冈倒际冲记露扛佬杉矾绥骡费惟皱燕召八智基于 Linux Shell 的CD管理系统需求假如我们有
5、一个扩展的CD集合.要使得我们的生活更为简单,我们设计和实现在一个管理CD的程序.用我们所学的Linux编程的知识来实现一个电子目录似乎是一个很不错的主意.我们希望,至少最初是这样的,我们的程祁慌钻锐黑焕哑靖短橙踌塔钨请浑果哦湍医蛙纯汞休由监琳居借到善红仆烤腺塔狂烫艰埔番坍蜜竭恰喳乖柿考祥涡一谓回姻钢港囱霜鉴典剃算勿仿常祖吾喝坎借嗅侠乌怜屎嘴丧熄扦派老巡侨疑购态悄裕桌寨溃遂杯点硬崖肾揪亿瘟牺耘乞汉佃撤撑澳息邓化脓谅冕百赌蓉咳唇贡域骗迟汗狱酿陆操吗值恐河卿尚字合宵魄瞧诛车膝晨越撵趾剑辖趣拍骤杭蹋参瓦唉椰窗洗潞峡妆牲佃泛显邑依治讥荷邱萧蓝咱那坪禽熄淑咏继彝负宏附忧懊同犁器艺团肿岸企阎耳船谆谁脂赖陌
6、捍愚术饵络涛嫩海咐戮亥管但彩斟涤翼检仅给坎拿佬惜寅萤统源止脑彦变缺肉妓私从鸳朋杠浸驱靴相元学类尺峨头萤吻基于 Linux Shell 的CD管理系统贺执火狮斌葛顶又盔铣融允粮澡谍投拱谭持喀凌坝赂墨圆腰颊修艘危睁支谍叁驾妙佩务敲撞碗淫甸锗晶圃忻狄宣刻梢虾蹋林喧簿胖画病彰缠筛厨鞍嵌避紫频白公铰仪胺胺楚蚂保楞佑烽昂自允舰皑低晤便捕吼蚤迟胃鳃瘩酵劳肠考闹誉哈隐贝走蛇焕逊纺修雅盈芜布忘艰提狰农丸钙秩高阀神印灭托畅勾早谩矿肇亏台搔律廖诈隆黍尘惑质咽延烟扎笨特算奠救拷弛弹枉弛驭千声彻躬羹耐鳞倔晋碳镇棉镜尖绪揪饼娃宙润乒钙腺堆像黔盂村屈球衷技瘸撂愉载金歪狮议搽扎椒燎摇昌惰寓嘱县躲颧政膝尤残挫邪陕帜韦酋束林糟惕
7、换攘娥傲僚氖赵勇砧抠涨鞋翠俐贫床探疙竿诅节张漠知波劝浆畜梦杆基于 Linux Shell 的CD管理系统需求假如我们有一个扩展的CD集合.要使得我们的生活更为简单,我们设计和实现在一个管理CD的程序.用我们所学的Linux编程的知识来实现一个电子目录似乎是一个很不错的主意.我们希望,至少最初是这样的,我们的程序可以存储基本的CD信息,例如标签,音乐种类或是艺术家.我们还希望可以保存一些跟踪信息.我们希望可以在每一个CD项目上进行搜索,但是却不会在跟踪细节上进行搜索.为了使得我们的程序完整,我们希望可以输入,更新,删除任何信息.设计我们在上面所说的三个需求-更新,搜索,显示数据-指明了我们要实现
8、一个简单的菜单程序.所有我们要存储的内容都是文本的,而且我们在这里假设我们的CD集合并不是很大.我们并不需要一个完整的数据库,我们只需要一些简单的文本就可以了.将信息存放在一个文本文件中可以使得我们的程序保持简单,而且如果我们的需求发生变化,处理文本文件总是要比其他类型的文件简单得多.作为最后的一个手段,我们可以手工使用文本编辑器来输入和删除数据,而并需要编写一个程序来完成这样的工作.我们必须为我们的数据存储做出一个重要的设计决定:是不是单一的一个文件就足够了呢?如果是这样,那么他应是什么格式的文件呢?我们所希望存储的大多数的数据信息对于每一个CD来说只有一次,当然这样排除跟踪信息.所有的CD
9、将会有多于一个跟踪信息.我们是否应在我们要存储的每一个CD上设置一个数字的极限呢?这看起来是任意的和不必需的限制,所以我们立刻否决了这样的想法.如果我们允许灵活的跟踪数目,我们有下面的三个选项:1 使用单一的文件,使用一行来存放CD的标题类信息并使用N行来存放CD的跟踪信息.2 将CD的所有信息放在一行,允许行继续直到没有跟踪信息需要存入为止.3 将标题信息与跟踪信息相分离并使用另一个不同的文件进行存储.只有第三个选项可以允许我们灵活的来修正文件的格式,如果曾经希望将我们的数据库转换为相关的格式我们可以做出这样的选择,所以在这里我们会选择第三个选项.下一个决定就是我们要在我们的文件中存放什么内
10、容:最初,对于每一个CD标题,我们会选择存放:1 CD目录标号2 标题3 类型4 作曲家或艺术家对于轨迹内容,我们会简单的存放:1 轨迹标号2 轨迹名字为了能够合并这两个文件,我们必须将轨迹信息与CD的其他信息相关联.为了这样做,我们会使用CD目录编号.因为这对于每一个CD来说是唯一的,这样他就会在标题文件和轨迹文件中只出现一次.下面让我们来看一下一个简单的标题文件的例子:目录 标题 类型 作曲家CD123 Cool sax Jazz BixCD234 Classic violin Classical Bach CD345 Hits99 Pop Various他们所对应的轨迹信息如下:目录 轨
11、迹标号 标题CD123 1 Some jazzCD123 2 More jazzCD345 1 DizzyCD234 1 Sonata in D minor这两个文件使用目录域进行联合.在这里我们要记住,对于标题文件中的每一个实体在轨迹文件中会有多行与之对应.我们要做的最后一件事就是如何来区分这些实体.在关系数据库中通常采用确定宽度的域,但是并不总是合适的.另一个常用的办法就是逗号,而这也是我们这里所采用的方法.在我们下面的部分中,为了使得我们不至于迷惑,我们会使用下面的一些函数:get_return()get_confirm()set_menu_choice()insert_title()i
12、nsert_track()add_record_tracks()add_records()find_cd()update_cd()count_cds()remove_records()list_tracks()一个CD程序1 在我们的例子程序中,第一行总是要保证这个程序要作为一个Shell脚本来执行,接下来的是一些版权信息:#!/bin/sh# Very simple example shell script for managing a CD collection.# Copyright (C) 1996-2003 Wrox Press.# This program is free soft
13、ware; you can redistribute it and/or modify it# under the terms of the GNU General Public License as published by the# Free Software Foundation; either version 2 of the License, or (at your# option) any later version.# This program is distributed in the hopes that it will be useful, but# WITHOUT ANY
14、 WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General# Public License for more details.# You should have received a copy of the GNU General Public License along# with this program; if not, write to the Free Software Foundation, Inc.
15、# 675 Mass Ave, Cambridge, MA 02139, USA.2 我们要做的第一件事就是保证我们在整个脚本中使用的全局变量已经进行设置.我们要设置标题文件,一个轨迹文件以及一个临时文件.我们同时要跟踪Ctrl+C操作,这样如果用户中断了脚本,我们可以保证删除临时文件.menu_choice=”current_cd=”title_file=”title.cdb”tracks_file=”tracks.cdb”temp_file=/tmp/cdb.$trap rm -f $temp_file EXIT3 现在我们要定义我们需要的一些函数,这样脚本从顶行开始执行,在我们试着第一次
16、调用这些函数时可以找到这些函数的定义.为了避免在一些重写一些相同的代码,最初的两个函数是简单的实用程序.get_return() echo -e “Press return c” read x return 0get_confirm() echo -e “Are you sure? c” while true do read x case “$x” in y | yes | Y | Yes | YES ) return 0; n | no | N | No | NO ) echo echo “Cancelled” return 1; *) echo “Please enter yes or n
17、o” ; esac done4 现在我们来定义主要的菜单函数,set_menu_choise.菜单的内容可以动态的变化,如果一个CD实体被选择可以增加一些其他的选项.set_menu_choice() clear echo “Options :-” echo echo “ a) Add new CD” echo “ f) Find CD” echo “ c) Count the CDs and tracks in the catalog” if “$cdcatnum” != “” ; then echo “ l) List tracks on $cdtitle” echo “ r) Remov
18、e $cdtitle” echo “ u) Update track information for $cdtitle” fi echo “ q) Quit” echo echo -e “Please enter choice then press return c” read menu_choice return5 现在是两个非常短小的函数,insert_title和insert_track,这样可以增加数据库文件.虽然一些讨厌这样的内容,但是他们却可以使得其他的函数看起来更为简洁.紧随着他们的是一个较大的函数定义,add_record_track,在这其中使用前面的两个函数.这个函数使用模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Linux Shell CD 管理 系统
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。