linux操作系统实验三.docx

上传人:b****3 文档编号:4960437 上传时间:2022-12-12 格式:DOCX 页数:10 大小:280.99KB
下载 相关 举报
linux操作系统实验三.docx_第1页
第1页 / 共10页
linux操作系统实验三.docx_第2页
第2页 / 共10页
linux操作系统实验三.docx_第3页
第3页 / 共10页
linux操作系统实验三.docx_第4页
第4页 / 共10页
linux操作系统实验三.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

linux操作系统实验三.docx

《linux操作系统实验三.docx》由会员分享,可在线阅读,更多相关《linux操作系统实验三.docx(10页珍藏版)》请在冰豆网上搜索。

linux操作系统实验三.docx

linux操作系统实验三

linux操作系统实验三

实验三LINUXSHELL脚本程序设计

一、实验目的

通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。

对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方法及bash的常用内部命令有进一步的认识和理解。

通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。

二、实验环境

操作系统:

任何Unix/Linux及SunSolaris或windows系列

应用系统:

SHELL或windows环境下的cygwin模拟系统

三、实验内容

本实验包含三个具体的SHELL程序编写任务,较为全面地涉及了SHELL程序的设计方法和技术。

内容如下:

⑴创建以下菜单程序:

USER:

****HOST:

********DATE:

**/**/20**

A:

创建子目录并复制文件

B:

文件权限测试

C:

文件字符转换

D:

文件总数及文本行数统计

E:

文件查找

Q:

退出系统

———————————————————————————————

A:

在用户家目录下创建名字为本人姓名的子目录,其存取权限为(drwxr-xr-x)。

测试目录确实存在后,将已存在的file1、file2两文件拷入其中并分别显示两文件的内容。

显示完成后将file1、file2两文件截断为大小为0的空文件。

yxh@Cancer:

~$#!

/bin/sh

yxh@Cancer:

~$MYDATE='2016-11-01'

yxh@Cancer:

~$THIS_HOST='yxh'

yxh@Cancer:

~$USER='yinxiaohang'

yxh@Cancer:

~$while:

>do

>tputclear

>cat<

>------------------------------------------------------------------------------User:

$USERHost:

$THIS_HOSTDate:

$MYDATE------------------------------------------------------------------------------A:

创建子目录并复制文件B:

文件权限测试C:

文件字符转换D:

文件总数及文本行数统计E:

文件查找Q:

退出系统------------------------------------------------------------------------------

>MAYDAY

>echo-e-n"\tYourChoice[A,B,C,D,E,Q]:

"

>readCHOICE

>case$CHOICEin

>A|a)mkdir--mode=755/home/yxh/test/yinxiaohang

>iftest-d"/home/yxh/test/yinxiaohang"

>thencpfile1file2/home/yxh/test/yinxiaohang

>catfile1

>catfile2

>:

>/home/yxh/test/yinxiaohang/file1

>cat/home/yxh/test/yinxiaohang/file1

>:

>/home/yxh/test/yinxiaohang/file2

>cat/home/yxh/test/yinxiaohang/file2

>elseechofile1isnotafilename

>fi

>;;

>B|b)if[-ffile1]

>thentest-rfile1-a-wfile1-a-xfile1

>ls-lfile1

>elseechofile1donotrwx

>fi

>;;

>C|c)tr'a-z''A-Z'1

>tr'a-z''A-Z'2

>iftest-f1-a2

>thencat1

>cat2

>elseechofail!

>fi

>;;

>D|d)ls-l/dev

>ls-l/dev|grep^d|wc-l

>ls-l/dev|grep^l|wc-l

>cat3

>cat3|grep'^$'|wc-l

>env

>;;

>E|e)find/dev-name"s[a-z][a-z][a-z][a-z]"

>find/dev-name"s[a-z][a-z][a-z][a-z]">4

>var=$(cat4)

>file-b${var%%.*}

>;;

>Q|q)exit0

>;;

>*)echo-e"\t\007unknownuserreponse"

>;;

>esac

>echo-e-n"\tHitthereturnkeytocontinue"

>readDUMMY

>done

⑵文件pc.txt中保存了三个班级的学生选课成绩,试编写一段shell程序对文件内容进行统计、计算后输出各个班级选课的学生人数及每班选课成绩的优秀率。

pc.txt文件内容如下:

student1:

1301:

75

Student2:

1302:

96

Student3:

1303:

99

Student4:

1302:

93

Student5:

1303:

23

Student6:

1301:

77

yxh@Cancer:

~$#!

/bin/bash

yxh@Cancer:

~$PASS1=0;

yxh@Cancer:

~$PASS2=0;

yxh@Cancer:

~$PASS3=0;

yxh@Cancer:

~$NUMBER1=0;

yxh@Cancer:

~$NUMBER2=0;

yxh@Cancer:

~$NUMBER3=0;

yxh@Cancer:

~$SAVEDIFS=$IFS

yxh@Cancer:

~$IFS=:

yxh@Cancer:

~$whilereadNAMECLASSSCORE

>do

>case$CLASSin

>1301)

>NUMBER1=`expr$NUMBER1+1`

>if[$SCORE-ge90]

>thenPASS1=`expr$PASS1+1`

>fi

>;;

>1302)

>NUMBER2=`expr$NUMBER2+1`

>if[$SCORE-ge90]

>thenPASS2=`expr$PASS2+1`

>fi;;

>1303)

>NUMBER3=`expr$NUMBER3+1`

>if[$SCORE-ge90]

>thenPASS3=`expr$PASS3+1`

>fi

>;;

>*)

>echo"FAIL!

"

>;;

>esac

>done

yxh@Cancer:

~$echo$PASS1

0

yxh@Cancer:

~$echo$PASS2

2

yxh@Cancer:

~$echo$PASS3

1

yxh@Cancer:

~$PASS1=$(echo"$PASS1/$NUMBER1+$PASS1%$NUMBER1*0.50"|bc|awk'{printf"%.2f",$0}')

yxh@Cancer:

~$PASS2=$(echo"$PASS2/$NUMBER2+$PASS2%$NUMBER2*0.50"|bc|awk'{printf"%.2f",$0}')

yxh@Cancer:

~$PASS3=$(echo"$PASS3/$NUMBER3+$PASS3%$NUMBER3*0.50"|bc|awk'{printf"%.2f",$0}')

yxh@Cancer:

~$echo"1301$NUMBER1$PASS1"

130120.00

yxh@Cancer:

~$echo"1302$NUMBER2$PASS2"

130221.00

yxh@Cancer:

~$echo"1303$NUMBER3$PASS3"

130320.50

yxh@Cancer:

~$IFS=$SAVEDIFS

⑶认真学习、理解find和grep(家族)命令,编制两个个性化的文件搜索工具。

while:

>do

>tputclear

>cat<

>

>***********************************A:

按文件内容查找文件并显示其路径B:

按文件名查找文件并显示其路径***********************************

>MAYDAY

>echo-e-n"\t请选择AORB:

"

>readCHOICE

>case$CHOICEin

>A)read-p"请输入字符串:

"val

>find.|xargsgrep-ri"$val"-l

>;;

>B)read-p"请输入文件名:

"val

>find.-name"*$val*"

>;;

>*)echo-e"\t\007FAIL!

"

>;;

>esac

>echo-e-n"\tHitthereturnkeytocontinue"

>readDUMMY

>done

 

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

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

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

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