qq_43597682 2019-05-27 15:11
浏览 468

Bourne shell程序设计

实验三 Bourne shell程序设计

一 、实验目的
1、巩固Bourne shell程序设计的学习;
2、掌握Bourne shell程序语句。
二、实验内容及要求
1、使用Bourne shell编写一个shell脚本程序,并调试通过。
2、通过对Bourne Shell的学习和应用,要求学生能够使用Bourne Shell语言解决实际问题,要求学生具有初步的Shell程序设计能力。
3、使用Bourne Shell 编写一段程序脚本。实现:输入1到9范围内任何一个整数,并将该整数与1~9相乘的结果输出到文件中result_multiply中。
4、用Bourne shell编写一段程序脚本,用于比较两个文件的内容,保存为shell_test2,并调试。
要求编写并调试通实验程序脚本shell_test2。
三、实验仪器设备
安装有UNIX操作系统的计算机。
四、实验原理
UNIX系统中为用户提供了shell高级程序设计语言,方便了系统维护和应用开发,也提高了编程效率。通常UNIX系统提供几种不同的shell,但以Bourne shell为最基本的shell,因此熟悉它可以为学习其它shell脚本语言奠定基础。各种shell有所不同,但它们突出特点是:把已有命令进行适当组合,构成新的命令;用户和UNIX系统之间可以通过shell进行交互;灵活利用位置参数传递参数值;结构化的程序模块,提供了顺序流程控制、条件控制、循环控制等;提供通配符、输入/输出重定向、管道等机制;便于用户开发新的命令;
1、利用shell过程把用户编写的可执行程序与UNIX命令结合在一起,当作新的命令使用;提供后台处理方式;
2、利用exec命令实现打开(open)文件,并分配给文件标识符供读文件(read)内容使用,然后关闭文件(close)。同时还需利用位置参数传递参数值。另外还需利用条件控制、循环控制等语句。
本实验要求编写的程序。首先,是利用Bourne shell环境下,分别采用控制结构的测试语句来完成所要求的功能;其次,用Bourne shell提供的各种机制和语句,完成所要求的比较两个文件内容的功能。
实验步骤
(一)
1、登录UNIX系统。
2、创建脚本文件。
3、输入一个整数(1-9)。
4、输入的数据不符合要求,异常退出。
5、实现该整数与1~9所有整数相乘,并将结果输出到文件result_multiply中。
(二)
1、登录UNIX系统。
2、用vi创建文件file1,将其拷贝为file2和file3 ,将文件file3内容进行改动。
3、在shell提示符下输入:vi shell_test2
4、该脚本在执行时需要两个参数,分别是被比较的两个文件名。
5、在vi中用Bourne shell脚本语言编写程序,使其具备如下功能:
⑴ 检查用户执行该脚本时是否正确输入两个参数;按照出现的错误分别显示:
① 在未输入两个参数的情况下显示:“two filename arguments”;异常退出程序;
② 在其中一个参数不是文件名时显示:“filename”;异常退出程序。
⑵ 分别将两个位置参数赋给两个变量f1和f2,打开并分配给这两个变量所代表的文件以3和4文件标识符。
⑶ 按文件一内的行循环,分别按行将这两个文件读入两个变量ln1和ln2,并加以比较;并将比较结果分情况显示:
① 如果有不同的行,显示:“different line” 和不同的行内容,退出比较循环;
② 如果文件二先抵达eof,显示:“f1>f2”,退出比较循环;
③ 如果文件一先抵达eof,退出比较循环。
⑷ 显示:“f2>f1”,否则显示:“the same”。
⑸ 按文件标识符将两个被比较的文件关闭,正常退出程序。
11、将程序保存为文件shell_test2。
12、在shell提示符下输入:chmod 700 shell_test2 。
13、在shell提示符下输入:输入shell_test2 file1 file2,观察程序执行结果并调试。
14、在shell提示符下输入:输入shell_test2 file2 file3,观察程序执行结果。
15、退出系统。

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 matlab有关常微分方程的问题求解决
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算
    • ¥15 java如何提取出pdf里的文字?
    • ¥100 求三轴之间相互配合画圆以及直线的算法