自学Linux Shell16.1-函数概念

点击返回 自学Linux命令行与Shell脚本之路html

16.1-函数概念

编写比较复杂的shell脚本时,完成具体任务的代码可能须要重复使用。bash shell提供知足这种要求的特性。
函数是被赋予名称的脚本代码块,能够在代码的任意位置重用。每当须要在脚本中使用这样代码块时,只需引用该代码块被赋予的函数名称。shell

1. 建立函数

在bash shell脚本中建立函数可使用两种格式。
一种格式是使用关键字function,后跟代码块的函数名:编程

1 function name {
2          commands
3 }
  • name属性定义了该函数的惟一名称。脚本中自定义的每一个函数都必须赋予惟一的名称。
  • commands是组成函数的一条或多条bash shell命令。当调用函数是,就像在普通脚本同样,bash shell按照各条命令在函数中出现的顺序依次执行。

另外一个格式,更接近通常编程语言定义函数的方式:bash

1 name() {
2 commands
3 }
  • 函数名以后的空白园括号代表这是在定义函数。
  • 该格式的函数命名规则与前面的shell脚本函数格式相同。

2. 使用函数

  • 函数名func1每次被引用时,bashshell返回func1函数的定义并执行该函数定义的所有名
  • 函数定义不必定位于shell脚本的起始部分,可是应当当心使用。若是在函数定义以前使用函数,会获得错误消息
  • 使用函数前,须要先定义函数
  • 函数的命令须要注意。每一个函数名必须惟一,不然会出问题
  • 若是从新定义函数,那么新定义将取代函数原先的定义,这不会引起错误消息

3.函数返回值

bashshell将函数看做小型脚本,并以退出状态结束。函数退出的状态有3中生成方式。编程语言

3.1 默认退出状态(不使用)
默认状况下,函数的退出状态是函数的最后一条命令返回的退出状态。函数执行完毕以后,可使用标准变量$?来肯定函数的退出状态函数

 

该函数的退出状态是2,由于最后一条命令执行失败。但没法得知函数的其余命令是否成功执行。spa

 

因为函数结尾是可以彻底成功执行的echo语句,虽然有一条命令运行失败,可是函数的退出状态仍然是0。因此,使用函数的默认退出状态是一种危险的作法。命令行

 3.2  使用return命令code

bash shell使用return命令以特定退出函数。return命令可使用单个整数值来定义函数退出状态,提供一种经过编程设置函数退出状态的简单方法。
使用这种方法返回数据时,必须注意避免两个容易发生的错误:htm

  • 在函数完成后尽快提取返回值
  • 退出状态的取值范围是0~255      

 

若是想要返回更大的整数值或字符串,那么不要使用这种返回值方法。

 3.3  使用函数输出

函数的输出也能够捕获并存放到shell变量中。

  • 这种方法能够从函数获取任意类型的输出并给出变量赋值:result=`db1`。这条命令将函数db1的输出赋予shell变量$resutl。
  • 这个方法也能够返回浮点数和字符串值,因此这种方法可以很是灵活地从函数返回数据。
 
新函数result会用echo语句来显示计算的结果,获取dbl函数的输出,而不是查看退出状态码。
相关文章
相关标签/搜索