创建函数
第一种格式采用关键字function
,后跟分配给该代码块的函数名。
function name {
commands
}
第二种
name() {
commands
}
你也必须注意函数名。记住,函数名必须是唯一的,否则也会有问题。如果你重定义了函数,新定义会覆盖原来函数的定义,这一切不会产生任何错误消息。
默认情况下,函数的退出状态码是函数中最后一条命令返回的退出状态码。在函数执行结束
后,可以用标准变量$?
来确定函数的退出状态码。
函数的退出状态码是1,这是因为函数中的最后一条命令没有成功运行。
由于退出状态码必须小于256,函数的结果必须生成一个小于256的整数值。任何大于256的值都会产生一个错误值。
要返回较大的整数值或者字符串值的话,就不能用这种返回值的方法,使用函数输出。
在脚本中指定函数时,必须将参数和函数放在同一行,像这样:
func1 $value1 10
然后函数可以用参数环境变量来获得参数值。
局部变量 :只需在变量声明前加上local
关键字
local关键字保证了变量只局限在该函数中。如果脚本中在该函数之外有同样名字的变量,
那么shell将会保持这两个变量的值是分离的。
addarray
函数遍历所有的数组元素累加。
可以用source
命令来在shell脚本中运行库文件脚本。这样脚本就可以使用库中的函数了。
source命令有个快捷的别名,称作点操作符( dot operator)。要在shell脚本中运行myfuncs
库文件,只需添加下面这行:
. ./myfuncs
当在命令行上定义函数时,你必须记得在每个命令后面加个分号,这样shell就能知道在哪里
是命令的起止了。