第19章 shell 函 数

第19章 shell 函 数

ID:13878241

大小:58.50 KB

页数:42页

时间:2018-07-24

第19章 shell 函 数_第1页
第19章 shell 函 数_第2页
第19章 shell 函 数_第3页
第19章 shell 函 数_第4页
第19章 shell 函 数_第5页
资源描述:

《第19章 shell 函 数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第19章shell函数下载第19章shell函数本书目前为止所有脚本都是从头到尾执行。这样做很好,但你也许已经注意到有些脚本段间互相重复。shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数。本章内容有:定义函数。在脚本中使用函数。在函数文件中使用函数。函数举例。函数由两部分组成:函数标题。函数体。标题是函数名。函数体是函数内的命令集合。标题名应该唯一;如果不是,将会混淆结果,因为脚本在查看调用脚本前将首先搜索函数调用相应的shell。定义函数的格式为:函数名(){命令1...}或者函数名(){命令1...}两

2、者方式都可行。如果愿意,可在函数名前加上关键字function,这取决于使用者。function函数名(){...}可以将函数看作是脚本中的一段代码,但是有一个主要区别。执行函数时,它保留当前shell和内存信息。此外如果执行或调用一个脚本文件中的另一段代码,将创建一个单独的shell,因而去除所有原脚本中定义的存在变量。函数可以放在同一个文件中作为一段代码,也可以放在只包含函数的单独文件中。函数不必包含很多语句或命令,甚至可以只包含一个echo语句,这取决于使用者。203第19章shell函数下载19.1在脚本中定义函数以下是一

3、个简单函数所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。上面的例子中,函数名为hello,函数体包含一个echo语句,反馈当天日期。19.2在脚本中使用函数现在创建函数,观察其在脚本中的用法。运行脚本,结果为:上面例子中,函数定义于脚本顶部。可以在脚本中使用函数名hello调用它。函数执行后,控制返回函数调用的下一条语句,即反馈语句backfromthefunction。19.3向函数传递参数向函数传递参数就像在一般脚本中使用特殊变量$1,$

4、2...$9一样,函数取得所传参数后,将原始参数传回shell脚本,因此最好先在函数内重新设置变量保存所传的参数。这样如果函数有一点错误,就可以通过已经本地化的变量名迅速加以跟踪。函数里调用参数(变量)的转换以下划线开始,后加变量名,如:_FILENAME或_filename。19.4从调用函数中返回当函数完成处理或希望函数基于某一测试语句返回时,可做两种处理:1)让函数正常执行到函数末尾,然后返回脚本中调用函数的控制部分。2)使用return返回脚本中函数调用的下一条语句,可以带返回值。0为无错误,1为有错误。这是可选的,与最后

5、状态命令报表例子极其类似。其格式为:204第四部分基础shell编程下载return从函数中返回,用最后状态命令决定返回值。Return0无错误返回。Return1有错误返回19.5函数返回值测试可以直接在脚本调用函数语句的后面使用最后状态命令来测试函数调用的返回值。例如:更好的办法是使用if语句测试返回0或者返回1。最好在if语句里用括号将函数调用括起来以增加可读性。例如:如果函数将从测试结果中反馈输出,那么使用替换命令可保存结果。函数调用的替换格式为:variable_name=function_name函数function_

6、name输出被设置到变量variable_name中。不久我们会接触到许多不同的函数及使用函数的返回值和输出的不同方法。19.6在shell中使用函数当你收集一些经常使用的函数时,可以将之放入函数文件中并将文件载入shell。文件头应包含语句#!/bin/sh,文件名可任意选取,但最好与相关任务有某种实际联系。例如,functions.main。一旦文件载入shell,就可以在命令行或脚本中调用函数。可以使用set命令查看所有定义的函数。输出列表包括已经载入shell的所有函数。如果要改动函数,首先用unset命令从shell中删

7、除函数,尽管unset删除了函数以便于此函数对于shell或脚本不可利用,但并不是真正的删除。改动完毕后,再重新载入此文件。有些shell会识别改动,不必使用unset命令,但为了安全起见,改动函数时最好使用unset命令。19.7创建函数文件下面创建包容函数的函数文件并将之载入shell,进行测试,再做改动,之后再重新载入。函数文件名为functions.main,内容如下:205第19章shell函数下载上述脚本本书前面用过,现在将之转化为一个函数。这是一个基本find命令的前端。如果不加参数,函数将返回1,即发生错误。注意错

8、误语句中用到了实际函数名,因为这里用$0,shell将只返回sh-信息,原因是文件并不是一个脚本文件。这类信息对用户帮助不大。19.8定位文件定位文件格式为:./pathname/filename现在文件已经创建好了,要将之载入shell,试键入:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。