Shell脚本编程详解吐血共享_第1页
Shell脚本编程详解吐血共享_第2页
Shell脚本编程详解吐血共享_第3页
Shell脚本编程详解吐血共享_第4页
Shell脚本编程详解吐血共享_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章Shell脚本编程 编写、修改权限和执行程序的步骤 在程序中使用参数和变量 表达式比较、循环结构语句和条件结构语句 在程序中使用函数和调用其他程序命令行书写规则行的书写规则命令时多个命对行基本功能的理解有助于编写更好的程序,在执行令可以在一个命令行上运行,但此时要使用分号(;分隔命令,例如:命令行可以使用反斜线字符()在命令行上扩充,例如:、亠-vV-.注意:“”符号是自动产生的,而不是输入的。12-2编写/修改权限及执行Shell程序的步骤程序程序程序有很多类似语言和其他程序设计语言的特征,但是又没有程序语言那样复杂。程序是指放在一个文件中的一系列命令和实用程序。在执行的时候,通过操

2、作系统一个接一个地解释和执行每条命令。首先,来编写第一个程序,从中学习程序的编写、修改权限、执行过程。-编1辑程序编辑一个内容如下的源程序,保存文件名为,可将其存放在目录下。通知采用解释。如果在语句中执行命令,则需要在命令前加符号“”,其中为输入格式控制符。建立可执行程序编辑完该文件之后不能立即执行该文件,需给文件设置可执行程序权限。使用如下命令。执行程序执行方法一:程序有下面二种方法:二月星期二方法二:另一种执行的方法就是把它作为一个参数传递给命令:二月星期二方法二:为了在任何目录都可以编译和执行所编写的程序,即把的这个目录添加到整个环境变量中。具体操作如下:二月星期二实例:编写一个程序,此

3、程序的功能是:显示下的文件信息,然后建立一个的文件夹,在此文件夹下建立一个文件修改此文件的权限为可执行。分析:此程序中需要依次执行下列命令为:进入目录:显示目录下的文件信息:-新建文件夹进入目录:新建一个文件编辑完成后需手工保存修改文件的权限为可执行:回到目录:因此该程序只是以上命令的顺序集合,假定程序名为在程序中使用的参数编程时同样可以使用参数。如同命令可以接受目录等作为它的参数一样,在程序中的参数分为位置参数和内部参数等。1:-3-位1置参数由系统提供的参数称为位置参数。位置参数的值可以用得到,是一个数字,如果为1即1类似语言中的数组,会把输入的命令字符串分段并给每段进行标号,标号从开始。

4、第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推。-内2部参数上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无,最常用的内部变量有$0、$?、$*,它们的含义如下。 命令含命令所在的路径。 传递给程序的总的参数数目。 程序在中退出的情况,正常退出返回0反之为非值。 传递给程序的所有参数组成的字符串。实例:利用内部变量和位置参数编写一个名为的简单删除程序,如删除的文件名为,则在终端中输入的命令为:分析:除命令外至少还有一个位置参数,即不能为0删除不能为,程序设计过程如下。()用编辑程序现对文件进行压缩移动到回收站2)设置

5、权限运行如果文件在目录下存在在程序中的使用变量变量的输入变-量1的赋值等号(=)前后没有空格例如:”表示把赋值给变量,字符串“”赋值给变量。访问变量值如果要访问变量值,可以在变量前面加一个美元符号“”,例如:”一个变量给另一个变量赋值可以写成变量=变量例如:可+以写成:键-盘3读入变量值在程序设计中,变量的值可以作为字符串从键盘读入,其格式为:显实例:编写一个目录下所有文件的信息。分析:程序,程序执行时从键盘读入一个目录名,然后存放目录的变量为,其读入语句为:显示文件的信息命令为:设置权限执行*注意F汪意:输入路径时需“”结实例运5行程序从键盘读入、的值,然后做加法运算,最后输出()用编辑程序

6、2)设置权限执行1注意:表达式"”键。中的符号“”为键盘左上角的5表达式的比较用test比较的运算符数字比较符文件操作符在程序中,通常使用表达式比较来完成逻辑任务。表达式所代表的操作符有字符操作符、数字操作符、逻辑操作符、以及文件操作符。其中文件操作符是一种所独特的操作符。因为里的变量都是字符串,为了达到对文件进行操作的目的,于是才提供了文件操作符。字符串比较作用:测试字符串是否相等、长度是否为零,字符串是否为常用的字符串操作符如表12-所1示.。表12-1常用的字符串操作符字符串操作符含义及返回值比较两个字符串是否相同,相同则为“真”!比较两个字符串是否不相同,不同则为“真”比较两

7、个字符串长度是否大于零,若大于零则为“真”比较两个字符串长度是否等于零,若等于零则为“真”实例12:-从6键盘输入两个字符串,判断这两个字符串是否相等,如相等输出。()用编辑程序保存前一个命令的返回码2)设置权限执)行、亠-vV-.汪意:f”后面和”前面及等号“的前后都应有一个空格;注意这里是程序的退出情况,如果和的字符串是不想等的非正常退出,输出结果为1实例编辑程序7比较字符串长度是否大于零保存前一个命令的返回码2)设置权限3)执行数-字2比较在编程中的关系运算有别于其他编程语言,用表中的运算符用语句表示大小的比较。表用比较的运算符运算符号含义相等大于等于小于等于不等于大于小于实例比8较两个

8、数字是否相等编辑程序2)设置权限3)执行逻辑操作实例在程序设计中的逻辑运算符如表所示。中的逻辑运算符运算符号含义反:与一个逻辑值相反的逻辑值与()两个逻辑值为“是”返回值为“是”,反之为“否”或()两个逻辑值有一个为“是”,返回值就是“是”:-分9别给两个字符变量赋值,一个变量赋予一定的值,另一个变量为空,求两者的与、或操作。()用编辑程序为空保存前一个命令的返回码2)设置权限3)执行文-件4操作文件测试操作表达式通常是为了测试文件的信息,一般由脚本来决定文件是否应该备份、复制或删除。由于关于文件的操作符有很多,在表中只列举一些常用的操作符。表文件测试操作符运算符号含义对象存在且为目录返回值为

9、“是”对象存在且为文件返回值为“是”对象存在且为符号连接返回值为“是”对象存在且可读则返回值为“是”对象存在且长度非零则返回值为“是”对象存在且且可写则返回值为“是”对象存在且且可执行则返回值为“是”实例:判断目录是否存在于下。凰)用编辑程序在添加目录实例-:1编1写一个程序t输入一个字符串,如果是目录,则显示目()用的信息,如为文件显示文件的内容。编辑程序2)设置权限、亠7汪意运行结果是返回参数“”,结果表示判断的目录不存在,表示判断的目录不存在。6循环结构语句环语句中加m日"循环、循环语句和循环。语法:循环变量列表操作、池丿注意:变量要在循环内部用来指列表当中的对象。列表是在循环

10、的内部要操作的对象,可以是字符串也可以是文件,如果是文件则为文件名。实例-:1在2列表中的值:,用2循,环4的,方6式,把8字符与数字分成两彳(1)用编辑脚本程序、亠-vV-.注意列表当在循环列表中的空格可表示换行。实例12-:1删3除垃圾箱中的所有文件。析:在本机中,垃圾箱的位置是在中,因而是在删除中的所有文件,程序脚本如下。()用编辑脚本程序2)设置权限3)执行实例:求从编辑脚本程序的0和。2)设置权限3)执行、亠<77汪意的加语句中的双括号不能省,最后的分号可有可无,表达式号两边的空格不能省,否则会成为字符串的连接。循环语法:表达式操作只要表达式为真,和之间的操作就直会进行。实例:

11、用循环求的和。11用编辑脚本程序2)设置权限执行(循环语法:表达式操作重复和之间的操作直到表达式成立为止。实例循环求的0和。:用编辑脚本程序2)设置权限执行(I土丿条件结构语句,条件语句主要有语句与语句条7件结构语句语句。2)设置权限3)执行2)设置权限3)执行里的的结束标志是将反过来写成;而其实是的缩写。其中,语法:表达式操作表达式操作表达式操作操作2)设置权限3)执行理论上可以有无限多个。2)设置权限3)执行实例编辑脚本程序:用循环求的0和。2)设置权限3)执行2)设置权限3)执行语句语法:表达式值值)操作;值值)操作;值值)操作;操作;的作用就是当字符串与某个值相同是就执行那个值后面的操

12、作。如果同一个操作对于多个值,则使用“”将各个值分开。在的每一个操作的最后面都有两个“;”分号是必需的。不实例是一个多用户操作系统,编写一程序根据不同的用户登录输出()用编辑脚本程序“”注意这里只有一个分号“”这里才是两个分号)“”“”将两命令写在一行,用一个分号作为分隔符)2)设置权限3)执行8在脚木中使用函数。函数能完成一特定的功能,可以重复调用这个函数。函数格式如下:函数名()函数体函数调用方式为函数名参数列表实例:编写一函数求两个数的和,这两个数用位置参数传入,最后输出)编辑代码)设置权限执3行)、亠汪意函数定义完成后必须同时写出函数的调用,然后对此文件进行权限设定,在执行此文件。9在

13、脚木中调用其他脚木程序名脚本支持调用另一个脚本,调用的格式为:()调用实例-:2在脚本中1调9用脚本脚本(/7注意在编辑中命令区分大小写字符。)在语句中加入必要的注释,以便以后查询和维护,注释以开头。)对变量进行数字运算时,使用乘法符号“”时,要用转义字符“”进行转义。)由于对命令中多余的空格不进行任何处理,因此程序员可以利用这一特性调整程序缩进,达到增强程序可读性效果。)在对函数命名时最好能使用有含义且能容易理解的名字,即使函数名能够比较准确地表达函数所完成的任务。同时建议对于较大的程序要建立函数名和变量命名对照表。本-章1小0结本章讲解了下脚本的定义和相关脚本编写的基础,这些基础知识是学习

14、脚本编程的关键。接着讲解了脚本的执行方式和脚本的常见流程控制,为h脚本的编程做了准备。课后习题选择题下列说法中正确的是()。安装软件包f要r按顺序使用.nfurins,all命令rB挂载U盘,un/smn,/u-oiocharse,c显示变量的值用命令hoD用命令.与sh执行She脚本b所得的结果并不相同用个shh脚本的第一行是什么()。n.shn/shnsh.nsh在h脚本中,用来读取文件内各个域的内容并将其赋值给h变量的命令是()。.fnr.r下列变量名中有效的h变量名是()。A.-2-timeB._2$3C.trust_no_1D.2004f下列对h变量FRUIT操作,正确的是()。.为

15、变量赋值:$FRUIT显示变量的值:fru显示变量的值:h$FRUIT判断变量是否有值:f“$FRUIT”在Fr系统中,下列关于h脚本程序说法不正确的是()。 h脚本程序以文本的形式存储 h脚本程序在运行前需要进行编译 h脚本程序由解释程序解释执行 h脚本程序主要用于系统管理和文件操作,它能够方便自如地处理大量重复性的系统工作在h编程中关于$的描述正确的是()。程序后携带了两个位置参数宏替换程序后面携带的第二个位置参数D携带位置参数的个数E用$2引用第二个位置参数在Fr系统中,“run.sh”是h执行脚本,在执行.run.shfff的命令的过程中,变量$的值为()。.run.sh.f.f.f填

16、空题在h编程时,使用方括号表示测试条件的规则。编写的h程序运行前必须赋予该脚本文彳权限。简答题用h编程,判断一文件是不是字符设备文件,如果是将其拷贝到目录下。在根目录下有四个文件,用h编程,实现自动创建四个目录,并将四个文件分别拷贝到各自相应的目录下。(3)某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案: 在下午删除目录下的全部子目录和全部文件; 从早下午每小时读取目录下文件中每行第一个域的全部数据加入到目录下的文件内;每逢星期一下午将目录下的所有目录和文件归档并压缩为文件: 在下午将接口的卸载(假设:的设备名为); 在早晨前开机后启动。请用编程来实现:当输入不同的选择时

17、,执行不同的操作,女如输入开始启动应用程序,输入时,关闭,输入时,查看进程,否则执行)显示“”并退出程序。编写一个程序,此程序的功能是:显示下的文件信息,然后建立一个的文件夹,在此文件夹下建立一个文件,修改此文件的权限为可执行。编写一个程序,挂载盘,在盘中根目录下所有文件拷贝到当前目录,然后卸载盘。编写一个程序,程序执行时从键盘读入一个文件名,然后创建这个文件。编写一个程序,键盘输入两个字符串,比较两个字符串是否相等。编写三个程序,分别用、与求从的和。编写一个程序,键盘输入两个数及、-、与中的任一运算符,计算这两个数的运算结果。编写两个程序及,在中输入两个数,调用计算计算这两个数之间奇数的和。编写程序,可以挂载盘,也可挂载硬盘的分区,并可对文件进行操作。3编)写4个函数分别进行算术运算、-、/,并编写一个菜单,实现运算命令。课程实训实训内容:编写一个程序,呈现一个菜单,有共个命令选项,为挂载盘,为卸载盘,为显示盘的信息,把硬盘中的文件拷贝到盘,把盘中的文件拷贝到硬盘中,选为退出。程序分析:把此程序分成题目中要求的6大功能模块,另外加一个菜单显示及选择的主模板。(1)编辑代码退出程序函数加载盘函数下创建目录查看盘设备名称卸载盘函数()显示盘信息函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论