- 1、本文档共141页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章Shell程序设计概要
第9章 Shell程序设计 9.1 Shell语言概述9.1.1 Shell语言的特点 与其他编程语言相比,Shell语言具有如下特点: (1) ?Shell是一种解释性语言。这就是说,用Shell语言写的程序不需编译,可以直接由Shell进程解释执行。解释性语言的特点是快捷方便,可以即编即用,但与编译性语言的目标程序来比,解释性语言程序的运行速度要低一些。 (2) ?Shell是基于字符串的语言。Shell只是做字符串处理,不支持复杂的数据结构和运算。Shell的输出也全部是字符方式的。 (3) ?Shell是命令级语言。Shell程序全部由命令而不是语句组成,几乎所有的Shell命令和可执行程序都可用来编写Shell程序。Shell命令十分丰富,命令的组合功能也十分强大。所以,用简单的命令和命令组合形成的Shell程序即简洁又高效,可以实现各种复杂的功能。 另外需要说明的是,不同版本的Shell程序不完全兼容,差别可能是细微的,也可能是明显的。本章介绍的是Bash编程,它的应用较广泛,兼容性也很好。 9.1.2 Shell程序 Shell程序也称Shell脚本(script),是由一系列Shell命令为基本元素构成的文本文件。简单的Shell程序可以只是一个命令序列,高级Shell程序中还可以包含复杂的命令组合,定义各种参数和变量、使用条件命令、控制结构以及其他高级特性。 例9.1 第1个Shell程序: $ cat hello #hello程序 # This is a shell script to say hello. echo Hello World! echo -n “Today is ” date “+%A, %B %d, %Y.” $ . hello #运行hello程序 Hello World! Today is Saturday, October 13, 2007. $ 这个hello程序的第1行是注释,后面3行是命令。在执行此程序时,Shell依次执行这3个命令并输出显示信息。 9.1.3 Shell程序的建立与执行 Shell脚本是文本文件,因此可以用任何文本编辑器(如vi、emacs等)建立和编辑脚本。Shell脚本文件的名称没有限定的扩展名,通常不带扩展名或带“.sh”扩展名。 Shell脚本的执行方式主要有3种。 (1) 将脚本作为可执行文件执行: $ chmod a+x hello $ ./hello 用文本编辑器生成的脚本文件默认是没有x权限的,也就是说是不可直接执行的。赋予x权限后,脚本就可以像一般的Shell命令那样执行了。如果脚本不在系统存放命令的标准目录下,需要在执行时指定脚本的路径。上例中脚本hello放在当前目录下,所以要用./hello来运行。 (2) 启动一个Shell子进程来执行脚本文件: $ bash hello #或bash hello 执行此命令行时,Shell进程先启动一个bash子进程,让它执行hello脚本的内容,执行完毕后bash子进程也终止。在这种方式中,脚本是作为命令参数传给子Shell的。子Shell运行时读取该文件并执行其内容,因此脚本文件不必有执行权限。这种方法常用于运行一个其他版本的Shell脚本。假如当前Shell是bash,而chello是用C Shell语言写的脚本,则要执行这个脚本时可以用csh chello命令启动一个csh进程来执行它。 (3) 让当前Shell进程执行脚本文件: $ . hello #注意.后面的空格 “.”是一个Shell内部命令,hello是它的参数。“.”命令的功能是读取参数指定的文件,执行其内容。这种执行方式与第2种方式类似,区别在于此方式是由当前Shell进程来执行脚本文件的。 9.2 Shell特殊字符 Shell定义了一些特殊的字符,称为元字符(meta-characters),它们对Shell有特殊的含义。Shell在读入命令行后,要先对命令行进行扫描,找出元字符并进行相应的替换或处理,以确定要执行的程序和它的参数及执行方式等。 Shell的元字符包括:文件通配符、输入/输出重定向及管道符、注释符、命令执行控制符、命令组合与替换符、转义符等。恰当地运用这些字符能够使Shell的功能得到充分发挥。以下分类介绍这些特殊字符的含义和用法。 9.2.1 通配符 通配符用于描述命令中的文件名参数。当Shell在命令的参数中遇到带有通配符的文件名模式时,它将目录中的所有文件与该模式进行匹配,并用匹配的文件名替换参数中的
文档评论(0)