Linux shell 支持用户定义的函数,你可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它。
1、基本的shell函数
函数(function)是可以起个名字并在代码中任何位置重用的代码块。你要在脚本中使用该代码块时,只要使用分配的函数名就可以了(这个过程就称为调用函数)。
(1)创建函数
有2种格式可以用来在bash shell脚本中创建函数。
第一种:
function name {
commands
}
说明:
name属性定义了赋予函数的唯一名称,你必须给脚本中定义的每个函数赋个唯一的名称。
commands是构成函数的一条或多条bash shell命令。在调用该函数时,bash shell会按命令在函数中出现的顺序执行命令,跟在普通脚本中一样。
第二种:
name() {
commands
}
说明:
函数名后面的圆括号为空,表明正在定义的是一个函数。
(2)使用函数
要在脚本中使用函数,在行上指定函数名就行了,跟使用其他shell命令一样。
实例:
说明:
每次引用func1函数名时,bash shell会回到func1函数的定义并执行你在那里定义的命令。
注意:函数定义不必是shell脚本中最前面的事,但要小心。你需要在函数定义之后再引用函数,否则会有报错。 如果你重新定义了函数,新定义会覆盖原来函数的定义,而不会产生任何错误的消息。
2、函数的返回值
bash shell会把函数当做小型脚本。运行结束时会返回一个退出状态码。
有3钟方法来为不同的方法来为函数生成退出状态码:
(1)默认退出状态码
默认情况下,函数的退出状态码是函数中最后一条命令返回的退出状态码。在函数执行结束后,你可以用标准的$?变量来决定函数的退出状态码。
注:使用函数的默认退出状态码是很危险的,因为它可能无法代表函数被成功执行。
实例:
(2)使用return命令定义
bash shell使用return命令来退出函数并返回特定的退出状态码。return命令允许指定一个整数值来定义函数的退出状态码,从而提供了编程设定函数退出状态码的简便途途径。
实例: