函数:

    最大的功能可以简化代码,在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


存活时间:

函数执行开始,至函数返回结束;

wKiom1X9W6Sg28PFAAG-CnPWajM139.jpg