您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Linux实验报告-shell脚本编程
南京信息工程大学实验(实习)报告实验(实习)名称shell脚本编程实验(实习)日期得分指导教师系计算机专业计算机科学与技术年级班次姓名学号一·【实验目的】1、了解和熟悉创建并使用脚本的步骤。2、熟悉bash的控制结构。3、学会简单的shell编程。二·【实验内容】1、创建一个简单的列目录和日期的shell脚本并运行之。步骤:⑴输入下列命令,创建一个新文件:catnew_script⑵输入下列行:echo“Yourfilesare”lsecho“todayis”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。⑶检查文件内容,确保它是正确的:#catnew_script⑷运行脚本,输入它的文件名:#new_script该脚本不运行。⑸输入下列命令,显示文件的权限:#ls–lnew_script权限表明该文件不是可执行。要通过简单调用文件名来运行脚本,必须有权限。⑹输入下列命令,使new_script变成可执行文件。chmod+xnew_script⑺要查看新的权限,输入:ls–l现在拥有文件的读、写和执行权限。⑻输入新脚本的名字以执行它:new_script所有输入到文件的命令都执行,并输出到屏幕上。⑼如果接收到错误信息,比如:commandnotfound输入下列命令:#./new_script日10月1112:37:00CST2009该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.”。2、用Shell语言编制一Shell程序,该程序在用户输入年、月之后,自动打印数出该年该月的日历。参考程序echo“Pleaseinputthemonth:”readmonthecho“Pleaseinputtheyear:”readyearcal$month$year3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“Endofprogram”,如果不同则显示“Endofprogram”。参考程序提示:echo–n是显示内容,但不回车换行$catif1echo–n“word1:”readword1echo–n“word2:”readword2iftest“$word1”=“$word2”thenecho“Match”fiecho“Endofprogram.”程序说明①if„then控制结构的语法是:iftest_commandthencommandsfi②其中test_command为test“$word1”=“$word2”,test是一个内置命令,如果它的第一个参数和第三个参数存在第二个参数所指定的关系,那么test将返回ture。Shell将执行then和fi之间的命令。否则执行fi后面语句。4、修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Notmatch”,最后显示“Endofprogram”。编程提示请使用if„then„else控制结构。5、编程使用case结构创建一个简单的菜单,屏幕显示菜单:a.Currentdateandtimeb.Usercurrentlyloggedinc.Nameoftheworkingdirectoryd.ContentsoftheworkingdirectoryEntera,b,cord:根据用户输入选项做相应操作。参考程序echo–e“\nCOMMANDMENU\n”echo“a.Currentdateandtime”echo“b.Usercurrentlyloggedin”echo“c.Nameoftheworkingdirectory”echo“d.Contentsoftheworkingdirectory\n”echo–n“Entera,b,cord:”readanswerechocase“$answer”ina)date;;b)who;;c)pwd;;d)ls;;*)Echo“Thereisnoselection:$answer”;;esac6、修改上题,使用户可以连续选择直到想退出时才退出。While[t]Doclearecho–e“\nCOMMANDMENU\n”echo“a.Currentdateandtime”echo“b.Usercurrentlyloggedin”echo“c.Nameoftheworkingdirectory”echo“d.Contentsoftheworkingdirectory\n”echo–n“Entera,b,cord:”readanswerechocase“$answer”ina)date;;b)who;;c)pwd;;d)ls;;e)return;;*)Echo“Thereisnoselection:$answer”;;esacdone7、编程使用select结构生成一个菜单如下:1)apple3)blueberry5)orange7)STOP2)banana4)kiwi6)watermelonChooseyourfavoritefruitfromthesepossibilities:用户输入所选项,如1显示:Youchoseappleasyoufavorite.Thatischoicenumber1.参考程序#!/bin/bashPS3=“Choseyourfavoritefruitfromthesepossibilities:”selectFRUITinapplebananablueberrykiwiorangewatermelonSTOPdoif[$FRUIT=STOP]thenecho“Thanksforplaying!”breakfiecho“Youchose$FRUITasyoufavorite.”echo“Thatischoicenumber$REPLY.”echodone程序说明①select结构的语法如下:selectvarname[inarg„]docommandsdone②REPLY是键盘变量。8、上机编写如下代码,分析下面的程序,简要说明整体功能,并解释每条语句。#!/bin/shval=1while(test$val-lt6)dotouchfile$valdatefile$valval=`expr$val+1`done9、编写一段shell程序,根据执行时候获取的当前时间显示出不同的问候信息。#!/bin/basha=`date+%H`if(test$a-lt12);thenechoGoodMorning!elseechoGoodAfternoon!fi10、用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到/dev目录下myfile=/path/filename#换成你实际的文件全路径fd=`ls-lmyfile`#获取文件详细信息fp=${fd:0:1}#截取第一个属性值[$fp=c]&&cpmyfile/dev#如果该属性值为c,则为字符设备文件,拷贝到/dev目录11、在根目录下有四个文件m1.txt,m2.txt,m3.txt,m4.txt,用Shell编程,实现自动创建m1,m2,m3,m4四个目录,并将m1.txt,m2.txt,m3.txt,m4.txt四个文件分别拷贝到各自相应的目录下#!/bin/bashforvarin1234domkdirm$varmv/m$var.txt/m$var/done
本文标题:Linux实验报告-shell脚本编程
链接地址:https://www.777doc.com/doc-7045698 .html