您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 实验三--Linux下的shell编程
1/9山西大学计算机与信息技术学院实验报告姓名学号专业班级计算机科学与技术课程名称操作系统实验日期2013.11.23成绩指导教师批改日期实验名称实验三Linux下的shell编程一、实验目的(1)了解shell在操作系统中的作用。(2)理解I/O重定向和管道。(3)学会编写简单的shell脚本程序。(4)学会运行shell命令文件。二、实验内容实验1shell脚本测试实验2shell脚本设计三、实验步骤与结果(1)进一步体会shell编程的目的主要是为了管理Linux,只有将shell编程和Linux系统管理结合起来,才能真正掌握shell编程的精髓。(2)描述各脚本的功能和输出结构,写入实验报告。①输出:功能:实现基本输入输出功能,以下程序实现了输入一个数,然后依次循环输出比此数小的数。(如,输入2,输出:112)使用命令介绍:echo:命令格式:echoarg;功能:在屏幕上打印出arg指定的字符串。bash:调用bash的形式是:bash–选择项Shell程序文件名;功能:Shell程序的调试主要是利用bash命令解释程序的选择项常用的选择项:-e:如果一个命令失败,就立即退出。-n:读入命令但是不执行它们。-u:置换时把未设置的变量看做出错。-v:当读入Shell输入行时把它们都显示出来。-x:执行命令时把命令和它们的参数显示出来。运行结果:1121232/9②功能:输出九九乘法表输出结果:1x1=11x2=22x2=41x3=32x3=63x3=91x4=42x4=83x4=124x4=161x5=52x5=103x5=154x5=205x5=251x6=62x6=123x6=184x6=245x6=306x6=361x7=72x7=143x7=214x7=285x7=356x7=427x7=491x8=82x8=163x8=244x8=325x8=406x8=487x8=568x8=641x9=92x9=183x9=274x9=365x9=456x9=547x9=638x9=729x9=81③计算器功能:实现了一个简单的计算器功能,可以实现加、减、乘、除,并且输出计算结果。使用命令介绍:read:命令格式:read变量名。功能:从标准输入设备读入一行,分解成若干行字,赋值给Shell程序内部定义的变量。运行结果:done..............+..............-..............*............../..............qpleasetypeyourword:(e.g.1+2)1+21+2=3..............+..............-..............*............../..............qpleasetypeyourword:(e.g.1+2)1*21*2=2..............+..............-..............*............../..............q3/9pleasetypeyourword:(e.g.1+2)q④输出当前目录下所有文件,并输出文件总数和目录总数。功能:实现了统计当前文件下的文件和目录的总数。并且,输出统计结果。使用命令介绍:expr命令格式:exprargumentoperatorargument功能:用于整数数值计算,但也可以用于字符串操作。输出结果:[root@localhost~]#ls-al总计336drwxr-x---19rootroot409612-0710:52.drwxr-xr-x24rootroot409612-0708:38..-rw-------1rootroot14642011-11-04anaconda-ks.cfg-rw-------1rootroot44412-0710:31.bash_history-rw-r--r--1rootroot242006-07-13.bash_logout-rw-r--r--1rootroot1912006-07-13.bash_profile-rw-r--r--1rootroot1762006-07-13.bashrcdrwx------2rootroot40962011-11-04.chewingdrwx------3rootroot40962011-11-04.config-rw-r--r--1rootroot1002006-07-13.cshrcdrwxr-xr-x2rootroot409612-0710:31Desktop-rw-------1rootroot262011-11-04.dmrcdrwxr-x---2rootroot40962011-11-04.eggcupsdrwxr-xr-x3rootroot409612-0710:32.emacs.d-rw-------1rootroot162011-11-04.esd_authdrwx------4rootroot409612-0708:41.gconfdrwx------2rootroot409612-0710:32.gconfddrwxr-xr-x3rootroot40962011-11-04.gnomedrwx------6rootroot40962011-11-04.gnome2drwx------2rootroot40962011-11-04.gnome2_privatedrwxr-xr-x2rootroot40962011-11-04.gstreamer-0.10-rw-r--r--1rootroot812011-11-04.gtkrc-1.2-gnome2-rw-------1rootroot18912-0708:41.ICEauthority-rw-r--r--1rootroot387062011-11-04install.log-rw-r--r--1rootroot43662011-11-04install.log.syslogdrwx------3rootroot40962011-11-04.metacitydrwxr-xr-x3rootroot40962011-11-04.nautilus-rw-r--r--1rootroot115712-0710:52.recently-used.xbeldrwxr-xr-x3rootroot40962011-11-04.redhat4/9drwx------4rootroot40962011-11-04.scim-rw-r--r--1rootroot6512-0710:37shuru-rw-------1rootroot1228812-0710:30.swp-rw-r--r--1rootroot1292006-07-13.tcshrcdrwx------3rootroot40962011-11-04.thumbnailsdrwx------2rootroot40962011-11-04.Trash-rw-r--r--1rootroot176112-0708:42.xsession-errors[root@localhost~]#echoThenumberofdirctaryis$dirnumThenumberofdirctaryis19[root@localhost~]#echoThenumberoffileis$filenumThenumberoffileis36⑤菜单功能:实现了列举菜单目录,改变目录,编辑文件夹,删除文件夹,和退出程序的功能。使用命令介绍:开关语句case条件命令格式:case字符串in模式字符串1)若干个命令行1;;模式字符串2)若干个命令行2;;….其它命令行esac运行结果:donelistdirectory.......lchangedirectory.....ceditfile............eremovefile..........rexitmenu............qlanaconda-ks.cfgDesktopinstall.loginstall.log.sysloglistdirectory.......lchangedirectory.....ceditfile............eremovefile..........r5/9exitmenu............qcentertargetdirectoryebash:cd:e:没有那个文件或目录listdirectory.......lchangedirectory.....ceditfile............eremovefile..........rexitmenu............qqgoodbye⑥功能:将所输入的参数循环输出输出结果:[root@localhost~]#bashshuruabcdefabcdefbcdefcdefdefefF⑦电话本:功能:实现简单的电话本功能,即添加,查询,删除,编辑电话,最终还设置了退出功能。运行结果:doneifyouwanttoaddauserplesetype.......aifyouwanttodelauserplesetype.......difyouwanttowatchalluserspleasetype.lifyouwanttobianjiuserspleasetype....eifyouwanttoexitpleasetype............qapleasetypeyourname:1236/9pleasetypeyournumber:18234122508ifyouwanttoaddauserplesetype.......aifyouwanttodelauserplesetype.......difyouwanttowatchalluserspleasetype.lifyouwanttobianjiuserspleasetype....eifyouwanttoexitpleasetype............ql12318234122508ifyouwanttoaddauserplesetype.......aifyouwanttodelauserplesetype.......difyouwanttowatchalluserspleasetype.lifyouwanttobianjiuserspleasetype....eifyouwanttoexitpleasetype............q⑧判断当前用户的类型。功能:显示了当前使用的虚拟机的用户名称。运行结果:[root@localhost~]##!/bin/bash[root@localhost~]#case$UIDin0)echothisisroot;;[0-9][0-9])echothisissystem;;[1-4][0-9][0-9])echothisisservice;;*)echothisispublic;;esacthisisroot⑨用一个文件记录系统中所有rpm包名,如果文件不存在则创建,如果存在则显示文件内容。功能:创建一个文件,把系统中的所有某类包名,用此文件记录。运行结果:[root@localhost~]##!/bin/bash[root@localhost~]#a=/root/file[root@localhost~]#if[-f$a]thencat$aelserpm-qa$afi产生一个file文件:7/9file文件中记录rpm包名:⑩功能:创建一个电话本,可新建联系人,删除联系人,查看联系人列表以及编辑联系人。输出结果:[root@localhost~]#bashf108/9xinjian-----------------1denglu------------------2exit------------------
本文标题:实验三--Linux下的shell编程
链接地址:https://www.777doc.com/doc-1859603 .html