linux shell编程大作业,《Linux操作系统》Shell编程大作业-01-潘春艳.doc

Shell编程大作业

设计报告

题目: Shell编程大作业--学生信息管理系统

院 系: 计算机科学系

专业班级: 11网络工程

学 号: 3111101101

学生姓名: 潘春艳

2014年 06 月 日

一、shell编程大作业的目的

(1)熟悉shell命令的功能和使用方法

(2) 掌握shell编程的基本思想

(3) 理解shell程序的设计方法

(4) 熟悉shell程序的编辑、运行、调试方法与过程

二、shell编程大作业的内容

有文本文件student.txt,该文件是所有学生的信息,每个学生存储一行信息, 信息格式如:学号:姓名:性别:专业 如(00101:张三:男:计算机)

设计一个shell程序脚本,名称为student.sh,该shell程序完成如下功能:

(1)当输入 student.sh时,输出文件的全部内容

(2)当输入 student.sh –h 5时,输出文件的前5条记录;当输入 student.sh –t 5时,输出文件的最后5条记录;

(3)当输入 student.sh –o num, 输出文件的全部内容,并按学号升序排序;输入 student.sh –o dep, 输出文件的全部内容,并按系别排序;

(4)当输入 student.sh -a 00101:张三:男:计算机 时,首先判断00101记录是否存在;如果存在,则给出提示,并输出文件中学号为00101的该行信息;如果不存在,判断该行信息是否符合格式要求(各个字段不能为空;学号必须是5个数字;性别的取值只能是”男”和”女”)–d 张三 ) 时,首先判断00101(或 张三)记录是否存在,如果不存在,给出提示;如果存在,显示该行信息并提示用户确认是否要删除记录,如用户输入y或 者yes,则删除文件中学号为00101的该行信息,如果用户输入n或no时,则不做删除操作

(6)当输入 student.sh -s 00101 (或 student.sh –s 张三 ) 时,首先判断00101(或 张三)记录是否存在,如果不在,给出提示,如果存在,则输出文件中00101(或 张三)的该行信息

(7)当输入 student.sh –-help时;输出该shell的用法

(8)当用户输入的选项不正确时,给出错误提示,并输出该shell的用法 (如:student.sh -q 123456 需错误提示)

注:如果中文格式的学生信息易出错,信息格式可改为英文方式

三、所用的设备与软件环境

如虚拟机的版本,linux的版本 及 其他可能有用到的软件工具

四、shell程序的结构设计

需画出流程图

五、shell程序的详细设计

六、程序的调试运行

可截图说明

七、程序清单

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  在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脚本文件输出的内容的例子:    (此处是主菜单—略) 你的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值