unix编程题,Bourne shell程序设计。求大神。急求

实验三Bourneshell程序设计一、实验目的1、巩固Bourneshell程序设计的学习;2、掌握Bourneshell程序语句。二、实验内容及要求1、使用Bourn... 实验三 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、退出系统。
展开
 我来答
cnbubble
推荐于2017-10-29 · TA获得超过2607个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:767万
展开全部

第一个程序:

#!/bin/bash

echo "Input an integer number(1~9):"
typeset -i num
read num
if (( $num<1 || $num >9 ))
then
  echo "Error Number!"
  exit 1
else
  #echo "AA"
  i=1
  until (( $i>9 ))
  do
    echo $(($i*$num)) >>result_multiply
    let i++
  done
fi

第二个复杂些

还要等等~~~

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式