Linux系统管理与网络管理(第2版):第13章 Shell编程_第1页
Linux系统管理与网络管理(第2版):第13章 Shell编程_第2页
Linux系统管理与网络管理(第2版):第13章 Shell编程_第3页
Linux系统管理与网络管理(第2版):第13章 Shell编程_第4页
Linux系统管理与网络管理(第2版):第13章 Shell编程_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

第13章Shell编程一个Shell脚本可以包含一个或多个命令,通过编写Shell脚本可以简化很多原本需要手工输入大量命令的任务。在本章中将对Shell脚本的基本原理、条件测试、控制结构、用户交互以及保留变量等的内容进行介绍。13.1Shell编程简介Shell除了是命令解释器外还是一种脚本编程语言,通过编写该脚本可以自动运行多条命令,简化手工操作。要运行一个Shell脚本文件,必须要为它添加执行权限。本节将对Shell脚本的功能、使用、结构等内容进行简单介绍,最后会编写一个简单的HelloWorld脚本演示编写并执行该脚本的步骤。13.1.1什么是Shell脚本Shell脚本概述13.1.2编写Shell脚本编写Shell脚本的方法13.2条件测试在编写Shell脚本时,有时要先测试字符串是否一致、数字是否相等或者检查文件状态,然后基于这些测试的结果再做进一步动作,这就是条件测试。Shell脚本的条件测试可以用于测试字符串、文件状态和数字,同时它也可以结合13.3节中所介绍的控制结构进行使用。测试完成后可以通过$?获取测试的结果,其中0表示正确,1表示错误。13.2.1数值测试关系运算符说

明关系运算符说

明-eq两个数值相等-lt第一个数小于第二个数-ne两个数值不相等-ge第一个数大于等于第二个数-gt第一个数大于第二个数-le第一个数小于等于第二个数13.2.2字符串测试关系运算符说

明关系运算符说

明=两个字符串相等-z字符串为空!=两个字符串不相等-n字符串不为空13.2.3文件状态测试关系运算符说

明关系运算符说

明-d目录-w可写-f一般文件-x可执行-L链接文件-u设置了suid-r可读-s文件长度大于0、非空13.2.4条件测试的逻辑操作符1.-a:逻辑与,只有当操作符两边的条件均为真时,结果为真;否则为假。2.-o:逻辑或,操作符两边的条件只要有一个为真,则结果为真;只有当两边所有条件为假时,结果为假。3.!:逻辑否,条件为假,结果为真。13.3控制结构通过Shell提供的各种控制结构,可以在Shell脚本中根据条件的测试结果控制脚本程序的执行流程。在Shell脚本中支持的控制结构有:if-then-else、case、for、while和until,本节将对这些控制结构逐一进行介绍。13.3.1if-then-else分支结构编写if-then-else分支结构的脚本13.3.2case分支结构编写case分支结构的脚本13.3.3for循环结构1.以常量作为值列表2.以变量作为值列表3.以命令运行结果作为值列表13.3.4expr命令计数器expr命令13.3.5while循环结构1.循环增量计算2.循环从文件中读取内容13.3.6until循环结构编写until循环结构的脚本13.4脚本参数与交互在执行一个脚本程序时,经常需要向脚本传递一些参数,并根据输入的参数值生成相应的数据或执行特定的逻辑。本节将介绍如何在脚本文件中引用脚本参数,如何实现与用户的数据交互以及Shell脚本的特殊变量。13.4.1向脚本传递参数设置位置变量13.4.2用户交互read命令的使用13.4.3特殊变量变量

名说

明$#传递给脚本的参数个数$*传递给脚本的所有参数的值$@与$*相同$$脚本执行所对应的进程号$!后台运行的最后一个进程的进程号$-显示Shell使用的当前选项$?显示命令的退出状态,0为正确,1为错误13.5Shell编程中的常见问题本节介绍Linux下Shell编程中的常见问题及它们的解决方法,并且会结合实例进行说明,包括如何在Shell中屏蔽命令的输出结果,如何把一条命令分成多行编写,以使Shell代

温馨提示

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

评论

0/150

提交评论