24. 函数

本章目录

和其它“真正”的编程语言一样,Bash也有函数,尽管它在实现方面有一些限制。一个函数就是一个子程序,实现一系列操作的代码块,执行一个特定任务的“黑盒子”。有重复代码的地方,当一个过程只需要轻微修改任务就会重复执行的时候,那么你就需要考虑使用函数了。

function function_name {
command...
}

或者

function_name () { 
command...
}

第二种形式可能会更受C程序员的喜爱(并且它更具有可移植性)。 在C语言里面,函数的圆括号可以出现在第二行。

function_name () {
command...
}

extra 一个函数可能被“压缩”到一个单独行里。

fun () { echo "This is a function"; echo; } 
#                                 ^     ^

然而,在这种情况下,函数里的最后一个命令必须跟有一个分号。

只需要引用函数名字就可以调用或者触发函数。一个函数调用相当于一个命令。

例子 24-1. 简单的函数

函数定义必须在第一次函数调用之前。没有声明函数的方法,比如像C语言中一样。

extra 函数不能为空!

甚至,把一个函数嵌套在另外一个函数里也是可行的,尽管这并没有什么用。

函数定义可能出现在不太可能出现的地方,甚至出现在本应该是命令出现的地方。

函数名字可以呈现各种奇怪的形式。

也可以参见 Example A-56

小提示:当一个函数的不同版本出现在一个脚本中,会发生什么事情呢?

Last updated

Was this helpful?