shell-函数.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
shell-函数

下载 第19章 shell 函 数 本书目前为止所有脚本都是从头到尾执行。这样做很好,但你也许已经注意到有些脚本 段间互相重复。 s h e l l允许将一组命令集或语句形成一个可用块,这些块称为 s h e l l 函数。 本章内容有: • 定义函数。 • 在脚本中使用函数。 • 在函数文件中使用函数。 • 函数举例。 函数由两部分组成: 函数标题。 函数体。 标题是函数名。函数体是函数内的命令集合。标题名应该唯一;如果不是,将会混淆结 果,因为脚本在查看调用脚本前将首先搜索函数调用相应的 s h e l l 。 定义函数的格式为: 函数名() { 命令 1 . . . } 或者 函数名(){ 命令 1 . . . } 两者方式都可行。如果愿意,可在函数名前加上关键字 f u n c t i o n,这取决于使用者。 f u n c t i o n 函数名() { ... } 可以将函数看作是脚本中的一段代码,但是有一个主要区别。执行函数时,它保留当前 s h e l l和内存信息。此外如果执行或调用一个脚本文件中的另一段代码,将创建一个单独的 s h e l l ,因而去除所有原脚本中定义的存在变量。 函数可以放在同一个文件中作为一段代码,也可以放在只包含函数的单独文件中。函数 不必包含很多语句或命令,甚至可以只包含一个 e c h o语句,这取决于使用者。 第19章 shell 函 数 203 下载 19.1 在脚本中定义函数 以下是一个简单函数 所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至 s h e l l解释器 首次发现它时,才可以使用。调用函数仅使用其函数名即可。上面的例子中,函数名为 h e l l o , 函数体包含一个e c h o语句,反馈当天日期。 19.2 在脚本中使用函数 现在创建函数,观察其在脚本中的用法。 运行脚本,结果为: 上面例子中,函数定义于脚本顶部。可以在脚本中使用函数名 h e l l o调用它。函数执行后, 控制返回函数调用的下一条语句,即反馈语句 back from the function 。 19.3 向函数传递参数 向函数传递参数就像在一般脚本中使用特殊变量 $ 1 , $ 2 . . . $ 9一样,函数取得所传参数后, 将原始参数传回 s h e l l脚本,因此最好先在函数内重新设置变量保存所传的参数。这样如果函 数有一点错误,就可以通过已经本地化的变量名迅速加以跟踪。函数里调用参数(变量)的 转换以下划线开始,后加变量名,如: _ F I L E N A M E或_ f i l e n a m e 。 19.4 从调用函数中返回 当函数完成处理或希望函数基于某一测试语句返回时,可做两种处理: 1) 让函数正常执行到函数末尾,然后返回脚本中调用函数的控制部分。 2) 使用r e t u r n返回脚本中函数调用的下一条语句,可以带返回值。 0为无错误,1为有错误。 这是可选的,与最后状态命令报表例子极其类似。其格式为: 204 第四部分 基础s h e l l编程 下载 r e t u r n 从函数中返回, 用最后状态命令决定返回值。 Return 0 无错误返回。 Return 1 有错误返回 19.5 函数返回值测试 可以直接在脚本调用函数语句的后面使用最后状态命令来测试函数调用的返回值。例如: 更好的办法是使用 i f语句测试返回 0或者返回 1。最好在i f语句里用括号将函数调用括起来 以增加可读性。例如: 如果函

文档评论(0)

haowendangqw + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档