实验三 LINUX SHELL脚本程序设计

实验三 LINUX SHELL脚本程序设计

实验类别:设计型 实验时数:6学时

开课单位:计算机学院计算机科学与技术系 实验地点:健翔校区计算中心

一、实验目的

通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方法及bash的常用内部命令有进一步的认识和理解。通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。

二、实验环境

操作系统:任何Unix/Linux及Sun Solaris 或 windows 系列 应用系统:SHELL 或 windows环境下的cygwin模拟系统

三、预备知识

1、 SHELL程序的主要用途

在SHELL程序中不仅仅可以使用命令的集合,而且可以安排自动化处理过程,因此可以通过编写SHELL程序使大量的任务执行实现自动化。SHELL比较擅长完成系统管理任务,尤其适合完成那些易用性、可维护性和便携性比执行效率更优先的任务。

我们可以使用任意一种文本编辑器完成SHELL程序的编写,在SHELL编程中要遵循一定的程序设计规则和变量使用规则。

2、 SHELL程序的执行与调试

⑴在bash的SHELL程序设计中,程序必须以下面的行开始: #!/bin/bash

这里符号#!用来告诉系统,后面给出的参数是用来执行该文件的程序。

1

⑵当编辑完一个SHELL脚本后,要使该脚本能够执行,还必须使该脚本文件具有可执行权。需要执行命令:chmod +x filename

⑶在shell程序中,以#开头到一个行结束的句子表示注释信息。建议大家在编写shell程序时养成添加注释的习惯,因为注释不仅能给其他需要熟悉该程序的人以帮助,也能给出脚本编写者设计原理的提示。

⑷进行shell程序设计时,必定会用到变量。Shell编程中使用的变量有自己的特色,即所有的变量都是由字符串组成的,而且对变量无须进行声明,可直接进行变量赋值操作。

四、实验内容

本实验包含三个具体的SHELL程序编写任务,较为全面地涉及了SHELL程序的设计方法和技术。内容如下:

⑴创建以下菜单程序:

USER: **** HOST: ******** DATE: **/**/20**

A: 创建子目录并复制文件 B: 文件权限测试 C: 文件字符转换 D: 文件总数统计 E: 文本文件行数统计 Q: 退出系统

——————————————————————————————— A:在用户家目录下创建名字为本人姓名的子目录,其存取权限为

(drwxr-xr-x)。测试目录确实存在后,将已存在的file1、file2两文件拷入其中并分别显示两文件的内容。显示完成后将file1、file2两文件截断为大小为0的空文件。

B:测试当前用户对系统中某文件是否有r、w、x的权限,输出测试结果。 C:将file1、file2两文件中的小写字符转换为大写,逐一显示转换后的文件

2

内容。

D:统计/dev目录下目录文件和符号链接文件的数目。 E:统计系统中某文本文件中空行的行数。

⑵文件pc.txt中保存了某班学生的数学成绩(第一项S*为学生学号,第二项数字为成绩),试编写一段shell程序完成以下操作:①按A(90-100)、B(80-89)、C(70-79)、D(60-69)、E(不及格)五档对成绩进行统计、计算后输出各个分数段的学生人数及总平均分;

②将各分数段的信息分别存入A、B、C、D、E五个文件中(在统计过程中动态完成)。

pc.txt文件内容如下:

S1:75 S2:68 S3:99 S4:83 S5:23 S6:77 S7:75 S8:69 S9:91 S10:83 S11:65 S12:71

⑶认真学习、理解find和grep(家族)命令,编制两个具有个性化且功能强大的文件搜索工具。

五、实验要求

1、做好实验预习,通过查找资料、阅读系统提供的帮助文件等多种渠道

了解本实验所使用的SHELL命令及各种技术方法。充分利用所学知识,预设多种实现思路。 2、写出实验报告,内容是:

3

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