您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 实验三-LINUX-SHELL编程
实验三LINUXSHELL编程四、实验内容本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL程序的设计方法和技术。内容如下:1、创建以下菜单程序:USER:****HOST:********DATE:**/**/20**A:创建子目录并复制文件B:文件权限测试C:文件字符转换D:文件总数及文本行数统计E:文件查找Q:退出系统———————————————————————————————A:在用户家目录下创建名字为本人姓名的子目录,其存取权限为(drwxr-xr-x)。测试目录确实存在后,将已存在的file1、file2两文件拷入其中并分别显示两文件的内容。显示完成后将file1、file2两文件截断为大小为0的空文件。B:测试当前用户对系统中某文件是否有r、w、x的权限,输出测试结果。C:将file1、file2两文件中的小写字符转换为大写,并将转换后的内容分别写入新文件。判断上述操作成功后分别显示转换后的新文件的内容。D:统计/dev目录下目录文件和符号链接文件的数目;统计系统中某文本文件中空行的行数;显示当前系统中所有环境变量。E:在/dev目录下查找由s开头且文件名由5个字符组成的文件,找到后用file命令显示其文件类型。#!/bin/bashUSER=WWcHOST=`hostname-s`MYDATE=`date+%d/%m/%y`while:doclearcatMAYDAY------------------------------------------------------------------User:$USERHost:$HOSTDate:$MYDATE------------------------------------------------------------------A:创建子目录并复制文件B:文件权限测试C:文件字符转换D:文件总数及文本行数统计E:文件查找Q:退出系统-----------------------------------------------------------------MAYDAYecho-nPleaseChoose[A,B,C,D,E,Q]readCHOICEcase$CHOICEinA)echoA:创建子目录并复制文件echo输入要创建的文件名:readFILEmkdir$FILEchmod755$FILEtest-d$FILEif[$?-eq0]thencpfile1$FILEcpfile2$FILEechofile1内容catfile1:$FILE/file1echofile2内容catfile2echo#:file2fi;;B)echoB:文件权限测试echo请输入要测试的文件绝对路径readNAME1test-r$NAME1if[$?-eq0]thenecho可读elseecho不可读fitest-w$NAME1if[$?-eq0]thenecho可写elseecho不可写fitest-x$NAME1if[$?-eq0]thenecho可执行elseecho不可执行fi;;C)echoC:文件字符转换catfile1|tr[a-z][A-Z]file1.outdiff-qfile1file1.outif[$?-eq1]thenechofile1.out内容catfile1.outficatfile2|tr[a-z][A-Z]file2.outdiff-qfile2file2.outif[$?-eq1]thenechofile2.out内容catfile2.outfi;;D)echo/dev目录下目录文件和符号链接文件的数目find/dev-typed|wc-lfind/dev-typel|wc-lechofile1空行行数统计grep^$file1|wc-lecho显示当前系统中所有环境变量env;;E)echo文件查找find/dev-name's????'|xargsfile;;Q)exit0;;*)echo请输入ABCDEQesacreadDDdone2、文件pc.txt中保存了三个班级的学生选课成绩,试编写一段shell程序对文件内容进行统计、计算后输出各个班级选课的学生人数及每班选课成绩的优秀率。pc.txt文件内容如下:Student1:1401:75Student2:1402:96Student3:1403:99Student4:1402:93Student5:1403:23Student6:1401:77#!/bin/bashSAVEDIFS=$IFSIFS=:COUNT1401=0COUNT1402=0COUNT1403=0COUNT1=0COUNT2=0COUNT3=0RATE1=0RATE2=0RATE3=0whilereadSTUDENTCLASSGRADEdocase$CLASSin1401)COUNT1401=`expr$COUNT1401+1`;;1402)COUNT1402=`expr$COUNT1402+1`;;1403)COUNT1403=`expr$COUNT1403+1`;;esacif[$CLASS-eq1401]&&[$GRADE-ge80]thenCOUNT1=`expr$COUNT1+1`fiif[$CLASS-eq1402]&&[$GRADE-ge80]thenCOUNT2=`expr$COUNT2+1`fiif[$CLASS-eq1403]&&[$GRADE-ge80]thenCOUNT3=`expr$COUNT3+1`fiRATE1=`expr$COUNT1\*100/$COUNT1401`RATE2=`expr$COUNT2\*100/$COUNT1402`RATE3=`expr$COUNT3\*100/$COUNT1403`donepc.txtIFS=SAVDEIFSecho各个班级选课的学生人数echo1401=$COUNT1401echo1402=$COUNT1402echo1403=$COUNT1403echo各个班级选课的学生人数echo1401=$RATE1%echo1402=$RATE2%echo1403=$RATE3%3
本文标题:实验三-LINUX-SHELL编程
链接地址:https://www.777doc.com/doc-4755326 .html