shell高级编程----函数(1)
(1) 基本的脚本函数:
函数: 起名并在代码中 任何位置可以被调用的代码块。脚本使用该代码块直接调用函数名即可。
(2) 创建函数:
格式一: function name {
代码块
}
格式二: name() { #圆括号为空,定义为函数。
代码块
}
使用函数:
在脚本中使用函数,在定义函数结束后,指定函数名即可。 注意:函数名必须是唯一的。
(3) 返回值;
默认退出状态码:
函数中最后一条命令返回的退出状态码。使用$?变量决定函数的退出状态码。
注意: 谨慎使用函数的默认退出状态码。
使用return命令;
退出函数并返回特定的退出状态码。允许整数定义函数的退出状态码。
注意:
函数一结束就取返回值;
退出状态码必须在0~255之间。
要返回较大的整数值或字符串值,不能使用这种返回值 。
使用函数输出:
将函数的输出保存到shell变量中。可返回浮点值和字符串值。
在函数中使用变量;
向函数传参:
函数可以用位置变量来代表命令行上传给函数的参数。 注意: 在脚本中指定函数时,必须将参数和函数放在同一行。 例如:$1,...$n , $#判断传给函数的参数数目。
在函数中处理变量:
作用域:
全局变量:全局生效。默认情况下,脚本内定义 的任何变量都是全局变量。
局部变量:
函数内部使用的变量可被声明成局部变量。
格式: local 变量名。
或者: local 变量名=变量值
local保证了变量只局限在函数中。
数组变量和函数:
向函数传数组参数:
将该数组变量的值分解成单个值,并将这些值作为函数参数使用。在函数内,可将所有的参数重组到新的数组变量中。
从函数返回数组:
函数用echo语句来按正确顺序输出单个数组值。
函数递归:
局部函数变量:自成体系。
函数可以调用自己得到结果。
递归函数都有一个最终可以迭代到的基准值。
创建库:
bash shell 允许创建函数库文件。可直接引用该文件。
第一步: 创建一个包含脚本中所需函数的公用库文件。
第二步: 要用这些函数的脚本文件中包含库文件。
source命令:
使用函数库, 会在当前 shell执行命令。可用source命令在shell脚本中运行库文件脚本。
source也称作点操作符,在脚本中运行库文件:
格式: . ./库文件名
在命令行上使用函数:
创建函数:
(1) 在一行内定义整个函数。 在命令行上定义函数时,需在每个命令后面加上个分号。
(2) 用多行来定义函数;
定义时,命令行使用次提示符来提示输出命令。 按回车键即可。
在.bashrc文件中定义函数;
shell会在每次启动时在主目录查找这个文件。
直接定义函数:
可直接在主目录的.bashrc文件中定义函数。
读取函数文件:
在脚本中,可用source命令来将已有库文件中的函数添加到.bashrc脚本中。
浙公网安备 33010602011771号