实验三shell脚本程序设计.docx

上传人:b****3 文档编号:935609 上传时间:2022-10-14 格式:DOCX 页数:10 大小:862.58KB
下载 相关 举报
实验三shell脚本程序设计.docx_第1页
第1页 / 共10页
实验三shell脚本程序设计.docx_第2页
第2页 / 共10页
实验三shell脚本程序设计.docx_第3页
第3页 / 共10页
实验三shell脚本程序设计.docx_第4页
第4页 / 共10页
实验三shell脚本程序设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

实验三shell脚本程序设计.docx

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

实验三shell脚本程序设计.docx

实验三shell脚本程序设计

实验报告

 

课程名称Linux系统实践

实验项目LINUXSHELL脚本程序设计

实验仪器PC

 

系别计算机学院

专业网络工程

班级/学号网1702/**********

学生姓名孟启贤

实验日期4.15

成绩

指导教师李艳平

 

实验三LINUXSHELL脚本程序设计

一、实验目的:

通过本实验练习,使学生了解常用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

#menu

USER=`whoami`

THIS_HOST=`hostname-s`

MYDATE=`date+%d/%m/%y`

while:

do

clear

cat<

-------------------------------------------------------------------------------------------------------

USER:

$USERHost:

$THIS_HOSTDate:

$MYDATE

-------------------------------------------------------------------------------------------------------

A:

创建子目录并测试

B:

文件查找

C:

文件权限测试及统计

D:

文件创建与复制

E:

文件内容修改

Q:

退出系统

----------------------------------------------------------------------------------------------------

MAYDAY

echo-n"你的选择[A,B,C,D,E,Q]:

"

readCHOICE

case$CHOICEin

A|a)

mkdir1463

chmodu+wxr1463

chmodg+xr1463

chmodo+x1463

ls

;;

B|b)

find/dev-namesd*>dev1463

v=$(catdev1463)

echo$v

file-b$v

echo'SHELL变量和函数'

set

;;

C|c)

echo"请输入文件的绝对路径"

readfpath

[-r$fpath]

if[$?

-eq0]

then

echo"可读"

else

echo"不可读"

fi

[-w$fpath]

if[$?

-eq0]

then

echo"可写"

else

echo"不可写"

fi

[-x$fpath]

if[$?

-eq0]

then

echo"可执行"

else

echo"不可执行"

fi

;;

D|d)

ls-l/dev|sort>file1

ls-l/dev|tail-n3|sort>file2

commfile1file2>file3

cpfile11463|cpfile21463|:

>file2

echo"COMMENDSUCCEED!

"

;;

E|e)

catfile1|tr-d"-"|tr">""">newf1

if[$?

-eq0];then

catnewf1

fi

;;

Q|q)

exit0

;;

*)echo"输入无效"

esac

echo-n"请输入任意建继续:

"

readDUMMY

done

⑵文件pc.txt中保存了部分学生某门课程的成绩,试编写一段shell程序对以下成绩计算后重新输出到文件cj.txt。

要求:

新文件内容要求用制表符(Tab键)做域分隔符;总评成绩由“卷面*80%+平时*20%”得出,保留两位小数;将你本人的信息插入到第三条(姓名用学号的后四位,后面的成绩均为100);统计卷面成绩的及格率。

pc.txt文件内容如下(各域之间用“,”分割):

学号卷面平时

stu1,2017000001,31,75

stu2,2017000002,55,68

stu3,2017000003,90,99

stu4,2017000004,76,83

stu5,2017000005,52,60

stu6,2017000006,71,77

cj.txt文件内容如下:

学号卷面平时总评

stu12017000001317539.80

stu22017000002556857.60

xxxx201701xxxx100100100.00

stu32017000003909991.80

stu42017000004768377.40

stu52017000005526053.60

stu62017000006717772.20

卷面成绩的及格率:

57.14%

源代码如下:

#!

/bin/bash

IFS=','

n=0

m=0

>cj.txt

echo-e"\t学号\t\t卷面\t平时\t总评">>cj.txt

whilereadnamenumgradepgrade

do

letn++

if[$n-eq1]

then

continue

fi

if[$n-eq4]

then

echo-e"1463\t2017011463\t100\t100\t100">>cj.txt

fi

if[$grade-ge60]

then

letm++

fi

echo-e"$name\t$num\t$grade\t$pgrade\t`echo"scale=2;$grade*80/100+$pgrade*20/100"|bc`">>cj.txt

done

echo-e-n"卷面成绩的及格率:

">>cj.txt

letm++

echo"$m$n"|awk'{printf("%.2f%%\n",$1/$2*100)}'>>cj.txt

五、实验总结

1、总结实验中遇到的问题及解决方法。

2、写出实验心得与收获。

.通过这次实验认识和理解SHELL程序的运行方式、bash程序的调试方法,大概掌握了编写SHELL程序的步骤、方法和技巧,特别是if等循环判断语句的使用方法,也更加熟练的使用一些操作命令语句。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1