linux系统实验shell程序设计,实验三-shell脚本程序设计

《实验三-shell脚本程序设计》由会员分享,可在线阅读,更多相关《实验三-shell脚本程序设计(10页珍藏版)》请在人人文库网上搜索。

1、实 验 报 告课程名称 Linux系统实践 实验项目 LINUX SHELL脚本程序设计 实验仪器 PC 系 别 计算机学院 专 业 网络工程 班级/学号 网1702/2017011463 学生姓名 孟启贤 实验日期 4.15 成 绩 指导教师 李艳平 实验三 LINUX SHELL脚本程序设计一、实验目的:通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方法及bash的常用内部命令有进一步的认识和理解。通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。二、实验环境 操。

2、作系统:任何Unix/Linux或 windows 系列应用系统:SHELL 或 windows环境下的cygwin模拟系统三、实验要求1、做好实验预习,通过查找资料、阅读系统提供的帮助文件等多种渠道了解本实验所使用的SHELL命令及各种技术方法。充分利用所学知识,预设多种实现思路。2、写出实验报告,内容是:简要说明实验的目的、任务与设备。写出实验步骤、实现的技术手段及关键代码。在给定实验数据的基础上给出相应的输出结果。总结实验中遇到的问题及解决方法。写出实验心得与收获。四、实验内容本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL程序的设计方法和技术。内容如下:创建以下菜。

3、单程序: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:。

4、用长格式(ls -l)显示目录/dev中所有符号链接文件,将输出结果排序后写入文件file1,将输出结果的后3行排序后写入file2文件;使用comm命令将两个文件的共有行写入文件file3。将file1、file2两文件拷入上面新创建的子目录中,最后将文件file2截断为大小为0的空文件。File1有内容。File2为空,本来有三行。如下:E:将file1文件中的字符“-”删除,再将字符“”用“”替换,修改后写入新文件newf1。判断上述操作成功后显示新文件newf1的内容。源代码如下:#!/bin/bash#menuUSER=whoamiTHIS_HOST=hostname -sMYDAT。

5、E=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 -。

6、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键。

7、)做域分隔符;总评成绩由“卷面*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.8。

8、0stu22017000002556857.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 th。

9、en 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.txt五、 实验总结1、 总结实验中遇到的问题及解决方法。2、 写出实验心得与收获。.通过这次实验认识和理解SHELL程序的运行方式、bash程序的调试方法,大概掌握了编写SHELL程序的步骤、方法和技巧,特别是if等循环判断语句的使用方法,也更加熟练的使用一些操作命令语句。

你可能感兴趣的:(linux系统实验shell程序设计,实验三-shell脚本程序设计)