




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Shell大作业说明书题 目 LINUX Shell编程 学生姓名 学 号 系 别 年 级 专 业 指导教师 完成日期 2010年6月25日 1一、需求分析1.任务目标Linux作为多用户、多任务的操作系统,其系统资源是所有用户共享的。对用户的管理是操作系统的重点。LINUX课程设计要用shell编程实现,将理论学习付诸实践。设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。2.系统要求程序要包括四个文件,即menu,add,delete,passwd四个文件。passwd文件是用来保存用户信息;menu文件是主菜单,要求运行的时候能显示一个菜单供用户选择;add文件是用来增加信息;delete文件是用来删除信息。在主Shell脚本文件里(必须以 menu 命名)要有一个多操作选项的菜单以便用户从中选择。对于任务6和7,需要编写单独的Shell脚本文件(必须分别命名为add和delete)并且在主脚本menu文件中调用这些脚本文件。在主目录下建立一个以 07wl-0x-xx(x为班、座号)命名的目录,并且在作业中使用它作为工作目录。3.系统功能在主Shell脚本文件里(即menu 文件)要有一个多操作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能:1、 在屏幕上显示当前所有用户的记录2、 在屏幕上显示当前所有用户(经过格式化和排序的)的记录3、 只在屏幕上显示用户名和用户ID4、 只在屏幕上显示(经过格式化和排序的)用户名和用户ID5、 查询并显示特定用户的记录6、 往passwd文件里增加新的用户记录7、 从passwd文件里删除某个用户记录其中: menu文件中的程序完成1,2,3,4,5功能;另外写一个add脚本文件和delete脚本文件分别实现选项6和7.当用户做了选择且所选的操作完成之后,可以再次显示主菜单以供用户做下一步选择。用while循环和case条件语句配合来完成此操作。二、总体设计1.功能图显示当前所有用户的记录显示当前所有用户经格式化后的记录显示用户名和用户ID显示格式化后用户名和用户ID查找指定用户信息添加用户信息删除用户信息用户信息主菜单2.流程图主菜单你的选择功能实现回车退出2.2.1主菜单2.2.2 add模块2.2.3 delete模块主菜单是否继续删除进入delete界面输入ID是否存在是否删除进入主菜单NYYYN三、详细设计1.MENU主菜单主菜单在menu脚本文件里将创建如下菜单,菜单里包含供用户选择的一些操作。无效输入当用户做了选择且所选的操作完成之后,应再次显示主菜单以供用户做下一步选择。在以上等待用户做出选择的菜单中,如果用户偶尔输入了一个代码而不是1、2、3、4、5、6、7或Q,就有信息提示“无效的代码,请按回车键继续”。等用户按了回车键之后,再次显示主菜单供用户做其他选择。如图: 无输入在以上等待用户做出选择的菜单中,如果用户简单地按了回车键,就会出现信息“无效的代码。等用户按了回车键之后,再次显示主菜单供用户做其他选择。当用户选择了1时打印当前所有用户记录当用户选择2时打印当前经过格式化的用户记录后当用户选择3时,打印用户名和用户ID当用户选择4时,打印(格式化的)用户名和用户ID当用户选择5时,查找特定的记录 如果输入的关键字不在记录里如果用户简单地按回车键而不是输入关键字2ADD文件当用户在主菜单里选择6时你的add脚本文件就要被调用输入用户名用户输入一个无效的用户名用户只按回车没有输入输入密码输入密码时不显示要求密码长度至少达到6位以上确认密码如果与密码不符应该让用户重新输入用户ID如果用户只是简单的按回车键如果用户输入的是一个无效的ID或者是不符合格式的ID组ID对组ID的要求类似与用户ID,一个有效的组ID(数字、一般非超级用户的ID大等于500)登录shell一个有效的shell必须只能是bash、sh、kash、csh中的一种如果用户只按回车没有输入的话则显示信息:“没有输入!”,并提示用户再次输入shell名保存记录3DELETE文件当用户在主菜单中选择7时,你的delete脚本文件必须被调用用户输入一个无效的用户ID用户简单的按回车键而没有任何输入继续删除四、附录(程序代码):1、menu主脚本文件代码 #! /bin/sh -#声明全局变量dataSource=passwd;homePath=.;AddUsers=. Add.sh;DeleteUsers=. Delete.sh;CheckDataSourceFileExist()if -f $dataSource then#文件存在return 0;else#文件不存在clear;echo -n 警告 【$dataSource】 不存在!请确认!;read ;return 1;fichoice=F;while $choice != Q -a $choice != q doCheckDataSourceFileExist;if $? -ne 1 thenclear;echo 用户信息管理主菜单;echo =;echo 1.显示当前所有记录;echo 2.格式化显示当前所有记录;echo 3.显示用户名和用户ID;echo 4.格式化显示用户名和ID;echo 5.查询特定用户信息;echo 6.添加新用户;echo 7.删除用户;echo Q.退出;echo -n 你的选择:;read choice;#作用是清除由于read到string.Empty的时候引发的bash参数过多的错误。if -z $choice thenchoice=empty;ficlear;if $choice = empty ;thenecho 选项尚未选择!;elsecase $choice in1) CheckDataSourceFileExist;if $? -ne 1 thenecho 当前的所有的用户信息如下所示:;echo 用户名 密码 ID GID 说明 工作目录 登录Shellcat $dataSource | tr : | more;fi;2) CheckDataSourceFileExist;if $? -ne 1 thenecho 当前的所有的用户信息如下所示:;echo -e 用户名t密码tIDtGIDt说明t工作目录t登录Shellsort -k 1 $dataSource | awk -F : print $1 t $2 t $3 t $4 t $5 t $6 t $7 t | more;fi;3) CheckDataSourceFileExist;if $? -ne 1 thenecho 当前的所有的用户的用户名和用户ID如下所示:;echo -e 用户名,ID;awk -F : print $1 , $3 $dataSource | more;fi;4) CheckDataSourceFileExist;if $? -ne 1 thenecho 当前的所有的用户的用户名和用户ID如下所示:;echo -e 用户名 t ID;awk -F : print $1 t $3 $dataSource | more;fi;5) CheckDataSourceFileExist;if $? -ne 1 thenkeyWords=;while -z $keyWords doecho -n 输入搜索关键词:;read keyWords;if -z $keyWords thenecho 搜索关键词不能为空,请重新输入!;fidoneCheckDataSourceFileExist;if $? -ne 1 thengrep -i $keyWords $dataSource;if $? -eq 1 thenecho 很遗憾,【$dataSource】文件中,并不存在与 $keyWords 一致的信息。;fififi;6) $AddUsers;7) $DeleteUsers;Q) printf 程序已经退出。;q) printf 程序已经退出。;*) echo $choice :此选项不是默认提供的功能。请确认。;esacfiecho -n 确认?;read ;fidone 2、add脚本文件代码clear;isContinue=y;userName=;while $isContinue = y -o $isContinue = Y do#用户名处理,输入一致到字符串长度不为0为止userName=;while -z $userName doecho -n 用户名:;read userName;if -z $userName thenecho 错误!用户名是不能为空的,请重新输入!;continue;fiif expr match $userName a-zA-Z0-9a-zA-Z* -ne expr length $userName thenecho 错误!用户名的只能由非数字打头的字符和数字组成,请重新输入!;userName=;continue;fidone#密码处理:1.验空,3.密码长度要6位,由大小写字母、数字和控制字符组成,2.验两次输入的一致性,passWord=;passWordAgain=;while -z $passWord doecho -n 密码:;read passWord;if -z $passWord thenecho 错误!密码是不能为空的,请重新输入!;continue;fiif expr length $passWord -ne 6 thenecho 密码长度为6位,请重新输入!;passWord=;continue;fiif expr match $passWord 0-9a-zA-Z* -ne expr length $passWord thenecho 密码由大小写字母、数字和控制字符组成,请重新输入!;passWord=;continue;fiecho -n 请在输入一次密码:;read passWordAgain;if $passWordAgain != $passWord thenecho 两次输入的密码不一样,请重新输入!;passWord=;continue;fidone#用户UID输入处理,UID为数字、一般非超级用户的ID大等于500uID=;while -z $uID doecho -n 用户UID:;read uID;if -z $uID thenecho 错误!用户UID是不能为空的,请重新输入!;continue;fiif expr match $uID 0-9* -ne expr length $uID thenecho 错误!用户的UID必须为数字,请重新输入!;uID=;continue;fiif $uID -lt 500 -o $uID -gt 60000 thenecho 错误!一般非超级用户的ID范围为50060000,请重新输入!;uID=;continue;fidone#用户组GID处理gID=;while -z $gID doecho -n 用户组GID:;read gID;if -z $gID thenecho 错误!用户GID是不能为空的,请重新输入!;continue;fiif expr match $gID 0-9* -ne expr length $gID thenecho 错误!用户的GID必须为数字,请重新输入!;gID=;continue;fiif $gID -lt 500 -o $gID -gt 60000 thenecho 错误!用户组的ID范围为50060000,请重新输入!;gID=;continue;fidoneecho -n 说明:;read note;#bash,sh,csh,kshshellVersion=;while -z $shellVersion doecho -n 登录SHELL(bash,sh,csh,ksh):;read shellVersion;if $shellVersion != bash -a $shellVersion != sh -a $shellVersion != csh -a $shellVersion != ksh thenecho 输入的Shell类型【$shellVersion】不在本系统支持范围内,请重新输入!;shellVersion=;fidoneecho -n 用户工作目录:;mkdir /home/$userName;if $? -eq 0 thenecho $userName 成功创建!;fiuserInfo=$userName:$passWord:$uID:$gID:$note:$userName:$shellVersion;echo $userInfo $dataSource;if $? -eq 0 thenecho $userName用户信息添加成功!;elseecho $userName用户信息添加失败!;fiecho -n 是否继续添加其他用户?(y/n);read isContinue;done3、detele脚本文件代码clear;isContinue=y;userName=;while $isContinue = y -o $isContinue = Y dowhile $isContinue = y -o $isContinue = Y doecho -n 输入用户的名称:;read userName;if -z $userName thenecho 用户名不能为空,请重新输入!;isContinue=Y;continue;fiCheckDataSourceFileExist;if $? -ne 1 thendeleteUser=$(awk -F : $1 = $userName print $0 $dataSource);if $deleteUser thenecho 目标帐号确认: $deleteUser;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- LED设备买卖合同经典版4篇
- 报建代理协议4篇
- 农业种植产业信息化与智能化融合发展研究报告
- 琵琶行课件专家评价
- 理财经验讲解课件
- 理疗护理安全管理培训课件
- 东莞方案工程师(3篇)
- 球阀维护保养课件
- 电采暖工程安装方案(3篇)
- 安全文明施工培训安排课件
- AM咨询I治理方法论
- 22.鲁迅 《过客》.电子教案教学课件
- 《艺术学原理》第一讲艺术学原理概述版剖析课件
- 万用表使用方法课件
- 转基因生物安全审定程序
- 教学课件-现代酒店管理基础
- 日语作文細やかな(细小)幸せにも感謝の気持ち 讲义-高考日语二轮复习
- 2009-2022历年河南省郑州市市属事业单位公开招聘考试《行政职业能力测试》笔试试题含答案带详解2022-2023上岸资料汇编3
- 新老物业移交表格(全套)
- 改装课件b737增压系统终定版
- 环境地学-1绪论
评论
0/150
提交评论