Linux下shell程序设计

Linux下的Shell程序设计

Linux下的Shell程序设计 .............................................................................................................. 1 一.引言........................................................................................................................................... 2

1.1.编写目的: ...................................................................................................................... 2 1.2定义: ................................................................................................................................. 2 3.参考资料: ......................................................................................................................... 3 二.任务的描述 ............................................................................................................................... 3

2.1.目标: .............................................................................................................................. 3 2.2功能描述: ......................................................................................................................... 3 2.3.运行环境: ...................................................................................................................... 3 2.4.条件与限制: .................................................................................................................. 3 三.任务设计 ................................................................................................................................... 4

3.1.整体设计: ...................................................................................................................... 4 3.2.详细设计: ......................................................................................................................... 5

3.2.1.Menu模块: ........................................................................................................... 5 3.2.2. Add模块 ................................................................................................................. 6 3.2.3 Delete模块 .............................................................................................................. 9

四.实现过程 ................................................................................................................................. 10

4.1.问题1 ............................................................................................................................. 10 4.2.问题2 ............................................................................................................................. 11 五.程序运行 ................................................................................................................................. 11

5.1.程序运行的过程: ........................................................................................................ 11

5.1.1.执行效果截图 ........................................................................................................ 11 5.1.2.输入错误截图 ........................................................................................................ 12 5.1.3.选择菜单1,运行截图 ......................................................................................... 12 5.1.4.选择菜单2,运行截图 ......................................................................................... 12 5.1.5选择菜单3,运行截图 ......................................................................................... 12 5.1.6 选择菜单5,运行截图 ........................................................................................ 12 5.1.7 选择菜单6,运行截图 ........................................................................................ 13 5.1.8 选择菜单7,运行截图 ........................................................................................ 13

六、感想认识 ................................................................................................................................. 13 七.程序代码 ................................................................................................................................. 14

7.1.Menu模块 ........................................................................................................................ 14 7.2.Add模块 ........................................................................................................................... 15 7.3.Delete模块 ....................................................................................................................... 20

一.引言

1.1.编写目的:

通过本课程设计,使学生巩固Linux和嵌入式系统的的基本概念、原理和技术,学会在Linux系统下完成Shell程序设计。

1.2定义:

1)grep

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2)sort

将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 3)rm

rm 名称源自英文单词remove的缩写,用于删除文件系统中的文件、目录、设备文件、符号链接等对象。准确地说,rm移除的指向特定对象的引用。在文件系统中,这些特定的对象可能有多个引用(例如,两个不同的文件名可能指向相同的文件), 只有在一个对象不再有任何引用,并且没有任何程序还拥有这个文件的有效句柄的时候,这个文件才会被删除。 4)cat

显示或者把多个文本文件连接起来。cat是concatenate的简写,类似于dos下面的type命令。 5)more

more命令,功能类似cat。more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能。more命令从前向后读取文件,因此在启动时就加载整个文件。 6)awk

awk是一个数字处理工具。相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分为数个“字段”来处理。运行效率高,而且代码简单,对格式化的文本处理能力超强。awk 是”Aho Weiberger and Kernighan”三个姓的第一个字母缩写。 7)sed

sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

3.参考资料:

(1) 陈祥琳 《Linux Shell脚本编程从入门到精通》ISBN: 9787302347927清华大学出版社,2014

(2.)孙琼《嵌入式Linux C语言应用程序设计》ISBN: 9787115342799 人民邮电出版社 2014 (3)秦攀科 《Linux C程序设计——实例详解与上机实验》ISBN:9787512106680北京交通大学出版社2011

二.任务的描述

2.1.目标:

(1)按要求设计Shell程序,实现用户管理的菜单,

(2)用Shell编程,实现menu主菜单,要求菜单中包含用户的显示,添加,删除等功能。

2.2功能描述:

在主Shell脚本文件里要有一个多操作选项的菜单(即主菜单)以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能: 在屏幕上显示当前所有用户的记录

在屏幕上显示当前所有用户(经过格式化和排序的)的记录 只在屏幕上显示用户名和用户ID

只在屏幕上显示(经过格式化和排序的)用户名和用户ID 查询并显示特定用户的记录

往passwd文件里增加新的用户记录 从passwd文件里删除某个用户记录

2.3.运行环境:

硬件:装有Windows操作系统的计算机 软件:Vmware和Linux下的C语言开发环境

2.4.条件与限制:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4