- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 7
LINUX/UNIX Shell编程大作业
在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用户全名、用户主目录和用户登录所用的shell。请设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。你们可以通过创建一些UNIX/LINUX shell 脚本文件来满足以上需求。
可以用任意一个文本编辑器打开passwd文件,该文件里包含用冒号分隔开的字段组成的记录,如下所示:
root:x:0:0:root:/root:/bin/bash
zxj:x:500:500:zxj303:/home/zxj:/bin/bash
.
.
.
在主Shell脚本文件里(必须以 menu 命名)要有一个多操作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能:
在屏幕上显示当前所有用户的记录
在屏幕上显示当前所有用???(经过格式化和排序的)的记录
只在屏幕上显示用户名和用户ID
只在屏幕上显示(经过格式化和排序的)用户名和用户ID
查询并显示特定用户的记录
往passwd文件里增加新的用户记录
从passwd文件里删除某个用户记录
你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5的任务。对于任务6和7,你需要编写单独的Shell脚本文件(必须分别命名为add和delete)并且在你的主脚本menu文件中调用这些脚本文件。
可能你还需要查询一些Unix/Linux命令,比如awk,、sort、tr、cut、paste、sed、grep;你也可能还需要查询其他的Unix/Linux命令。
建议你在主目录下建立一个以 xx xx xx(xx xx xx为学号)命名的目录,并且在本次作业中使用它作为工作目录。
主脚本文件中的菜单
在menu脚本文件里将创建如下菜单,菜单里包含供用户选择的一些操作。
用户信息主菜单
打印当前所有记录
打印当前所有记录(格式化后的)
打印用户名和用户ID
打印(格式化了的)用户名和用户ID
查询特定记录
增加新记录
删除记录
Q——退出
你的选择是:(等待用户输入)
当用户做了选择且所选的操作完成之后,应再次显示主菜单以供用户做下一步选择。你必须用while循环和case条件语句配合来完成此操作。另外在显示主菜单前必须先清除用户屏幕。在以下所有步骤中,当显示主菜单前都需要先清屏。
在menu脚本文件的前面部分你首先要定义三个变量,这三个变量分别存放passwd、add、delete文件的文件名,并且能在所有涉及到passwd、add、delete文件的语句中使用他们。
比如,可以定义成:
record_file=passwd
在所有访问passwd文件的语句中,只要使用 $record_file 即可。这样做的一个优点就是,如果以后你需要重新命名记录或者需要在不同的记录文件中使用你的脚本的话,你只需要修改以上一个语句而不须在所有有关的记录文件里逐一修改语句。如下定义另外两个变量:
add_file=add
delete_file=delete
定义以上变量之后,你必须核对menu脚本文件,看看所需的文件(passwd、add、delete)是否准确存放在当前目录下。如果其中任何一个不存在,你的脚本menu文件就必须显示以下信息,然后退出:
Required file theMissingFile does not exist.(所需文件不存在)
比如,如果passwd文件不存在,就显示“Required file passwd does not exist.(所需文件记录不存在)”然后退出。
在以上等待用户做出选择的菜单中,如果用户偶尔输入了一个代码而不是1、2、3、4、5、6、7或Q,就有信息提示“无效的代码,请按回车键继续``````”(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。等用户按了回车键之后,再次显示主菜单供用户做其他选择。可以允许用户使用Q或q退出。
在以上等待用户做出选择的菜单中,如果用户简单地按了回车键(而不是输代码)的话,就会出现信息“Selection not entered. Press Enter to continue…(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。等用户按了回车键之后,再次显示主菜单供用户做其他选择。
当用户选择了第一项——打印当前所有用户记录
以下是当用户在主菜单中选择第一个选项后,menu脚本文件输出的内容的例子:
(此处是主菜单
您可能关注的文档
- 2016广东行测(县级)答案暂缺.doc
- 2016年浙江省公务考试《行测》真题【完整+答案+解析】.doc
- Ftp服务器与Samba服务器的搭建.doc
- Ftp服务器与Samba服务器的搭建2.doc
- linux期末复习-cj 第5章文件目录管理.ppt
- linux期末复习-611缩印本.doc
- linux期末复习-cj第9章 网络应用.ppt
- linux期末复习-linux、网络常见试题.doc
- linux期末复习-cj 第10章 系统内核裁剪.ppt
- linux期末复习-linux_zzz.doc
- 2023年试验检测师之桥梁隧道工程训练试卷包括详细解答.docx
- 2023年试验检测师之桥梁隧道工程练习试题和答案.docx
- 试验检测师之桥梁隧道工程综合提升测试卷附答案详解.docx
- 2022-2023年消防设施操作员之消防设备基础知识综合提升模拟题库提供答案解析.docx
- 2022-2023年消防设施操作员之消防设备基础知识考前冲刺测试卷包括详细解答.docx
- 2022-2023年消防设施操作员之消防设备基础知识考前冲刺模拟卷.docx
- 2022-2023年消防设施操作员之消防设备基础知识考前冲刺模拟考试试卷附带答案.docx
- 试验检测师之桥梁隧道工程综合提升模拟题库包含答案.docx
- 2023年试验检测师之桥梁隧道工程试卷附带答案.docx
- 2023年试验检测师之桥梁隧道工程模拟卷附答案详解.docx
文档评论(0)