函数:
最大的功能可以简化代码,在shell中做出类似自动执行的脚本,把一段具有独立功能代码封装在一起,并给予命名;后续用到时,可直接通过给定函数名来调用整体代码;
函数的使用方式:
先定义,后调用
先编写函数代码,在给出函数名称,按需传递参数
格式:
① function function_name(){
command 1
command 2 # 函数中可以有多个语句,但不允许有空语句
}
② function_name(){
command 1
command 2
}
特点:
代码重用,模块化编程
调用函数:
f_name [argu1, argu2, ...]
注:传递参数时,一定要写成Print $n;而不能写成Print n。为什么?例如你输入的是20,则n的值($n)为20,前者表示的是把n的值,即20传递给函数Print,而后者则表示把字符n传递给函数Print。这点与在静态语言中的函数参数传递是很不同的,因为在Shell中变量的使用并不需要先定义,所以要使用变量,让Shell知道它是一个变量,并要传递它的值时,就是用$n,而不能直接用n,否则只把n当作一个字符来处理,而不是一个变量。函数代码执行时,一旦遇到return,函数代码终止运行,函数返回
自定义函数状态返回值:
return [#]
0: 成功
1-255:失败
模块化编程
功能:把脚本文件中的代码分隔为多段,放在不同的文件中
假设/root/bin/srv目录有两个文件:
(1) 函数文件
(2) 脚本文件
为脚本使用配置文件
一个文件中只定义变量
脚本文件source此变量定义的文件
变量的作用域:
局部变量:在函数体中继续调用函数自身
local VARIABLE=value
存活时间:
函数执行开始,至函数返回结束;
原文:http://canshan.blog.51cto.com/2613522/1696378