2017011463-孟启贤-实验三-shell脚本程序设计_第1页
2017011463-孟启贤-实验三-shell脚本程序设计_第2页
2017011463-孟启贤-实验三-shell脚本程序设计_第3页
2017011463-孟启贤-实验三-shell脚本程序设计_第4页
2017011463-孟启贤-实验三-shell脚本程序设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 验 报 告课程名称 Linux系统实践 实验项目 LINUX SHELL脚本程序设计 实验仪器 PC 系 别 计算机学院 专 业 网络工程 班级/学号 网1702/2017011463 学生姓名 孟启贤 实验日期 4.15 成 绩 指导教师 李艳平 实验三 LINUX SHELL脚本程序设计一、实验目的:通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方法及bash的常用内部命令有进一步的认识和理解。通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。二、实验环境 操作系统:任何Unix/Linux或 windows 系列应用系统:SHELL 或 windows环境下的cygwin模拟系统三、实验要求1、做好实验预习,通过查找资料、阅读系统提供的帮助文件等多种渠道了解本实验所使用的SHELL命令及各种技术方法。充分利用所学知识,预设多种实现思路。2、写出实验报告,内容是:简要说明实验的目的、任务与设备。写出实验步骤、实现的技术手段及关键代码。在给定实验数据的基础上给出相应的输出结果。总结实验中遇到的问题及解决方法。写出实验心得与收获。四、实验内容本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL程序的设计方法和技术。内容如下:创建以下菜单程序:USER: * HOST: * DATE: */*/20*A: 创建子目录并测试B: 文件查找C: 文件权限测试及统计D: 文件创建与复制E: 文件内容修改Q: 退出系统 A:在用户家目录下创建名字为你学号后四位数字的子目录,其存取权限为(drwxr-xr-x)。测试确认目录存在,输出提示。 B:在/dev目录下查找由sd开头且文件名由3个字符组成的文件,找到后用file命令显示其文件类型;显示当前系统中所有变量和Shell函数。 C:测试当前用户对系统中某文件是否有r、w、x的权限,输出测试结果。 统计/dev目录下块设备文件和字符设备文件的数目;统计date命令的 帮助手册中空行的个数。 D:用长格式(ls -l)显示目录/dev中所有符号链接文件,将输出结果排序后写入文件file1,将输出结果的后3行排序后写入file2文件;使用comm命令将两个文件的共有行写入文件file3。将file1、file2两文件拷入上面新创建的子目录中,最后将文件file2截断为大小为0的空文件。File1有内容。File2为空,本来有三行。如下: E:将file1文件中的字符“-”删除,再将字符“”用“”替换,修改后写入新文件newf1。判断上述操作成功后显示新文件newf1的内容。源代码如下:#!/bin/bash#menuUSER=whoamiTHIS_HOST=hostname -sMYDATE=date +%d/%m/%ywhile :doclearcat dev1463v=$(cat dev1463)echo $vfile -b $vecho SHELL变量和函数set;C|c)echo 请输入文件的绝对路径read fpath -r $fpath if $? -eq 0 thenecho 可读else echo 不可读fi -w $fpath if $? -eq 0 thenecho 可写elseecho 不可写fi -x $fpath if $? -eq 0 thenecho 可执行else echo 不可执行fi;D|d)ls -l /dev|sort file1ls -l /dev|tail -n 3|sort file2comm file1 file2 file3cp file1 1463|cp file2 1463|:file2echo COMMEND SUCCEED!;E|e)cat file1|tr -d -|tr newf1if $? -eq 0 ; thencat newf1fi;Q|q)exit 0;*)echo 输入无效esacecho -n 请输入任意建继续:read DUMMYdone文件pc.txt中保存了部分学生某门课程的成绩,试编写一段shell程序对以下成绩计算后重新输出到文件cj.txt。 要求: 新文件内容要求用制表符(Tab键)做域分隔符;总评成绩由“卷面*80% + 平时*20%”得出,保留两位小数;将你本人的信息插入到第三条(姓名用学号的后四位,后面的成绩均为100);统计卷面成绩的及格率。pc.txt文件内容如下(各域之间用“,”分割): 姓名 学号 卷面 平时stu1,2017000001,31,75stu2,2017000002,55,68stu3,2017000003,90,99stu4,2017000004,76,83stu5,2017000005,52,60stu6,2017000006,71,77 cj.txt文件内容如下: 姓名 学号 卷面 平时 总评stu12017000001317539.80stu22017000002556857.60xxxx201701xxxx100100100.00stu32017000003909991.80stu42017000004768377.40stu52017000005526053.60stu62017000006717772.20 卷面成绩的及格率:57.14%源代码如下:#!/bin/bashIFS=,n=0m=0cj.txtecho -e 姓名t学号tt卷面t平时t总评cj.txtwhile read name num grade pgradedolet n+if $n -eq 1 thencontinuefiif $n -eq 4 then echo -e 1463t2017011463t100t100t100cj.txtfiif $grade -ge 60 thenlet m+fiecho -e $namet$numt$gradet$pgradetecho scale=2;$grade * 80 / 100 + $pgrade * 20 / 100|bccj.txtdone cj.txtlet m+echo $m $n|awk printf(%.2f%n,$1/$2*100)cj.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论