编写比较复杂的shell脚本时,完成具体任务的代码可能须要重复使用。bash shell提供知足这种要求的特性。
函数是被赋予名称的脚本代码块,能够在代码的任意位置重用。每当须要在脚本中使用这样代码块时,只需引用该代码块被赋予的函数名称。shell
在bash shell脚本中建立函数可使用两种格式。
一种格式是使用关键字function,后跟代码块的函数名:编程
1 function name { 2 commands 3 }
另外一个格式,更接近通常编程语言定义函数的方式:bash
1 name() { 2 commands 3 }
bashshell将函数看做小型脚本,并以退出状态结束。函数退出的状态有3中生成方式。编程语言
3.1 默认退出状态(不使用)
默认状况下,函数的退出状态是函数的最后一条命令返回的退出状态。函数执行完毕以后,可使用标准变量$?来肯定函数的退出状态函数
该函数的退出状态是2,由于最后一条命令执行失败。但没法得知函数的其余命令是否成功执行。spa
因为函数结尾是可以彻底成功执行的echo语句,虽然有一条命令运行失败,可是函数的退出状态仍然是0。因此,使用函数的默认退出状态是一种危险的作法。命令行
3.2 使用return命令code
bash shell使用return命令以特定退出函数。return命令可使用单个整数值来定义函数退出状态,提供一种经过编程设置函数退出状态的简单方法。
使用这种方法返回数据时,必须注意避免两个容易发生的错误:htm
若是想要返回更大的整数值或字符串,那么不要使用这种返回值方法。
3.3 使用函数输出
函数的输出也能够捕获并存放到shell变量中。