一、函数介绍
函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部 分 函数和shell程序区别 Shell程序在子Shell中运行 函数在当前Shell中运行。因此在当前Shell中,函数可对shell中变量进行修改二、管理函数
1、定义
#语法一: func_name (){ ...函数体... } #语法二: function func_name { ...函数体... } #语法三: function func_name () { ...函数体... }2、查看函数
#查看当前已定义的函数名 declare -F #查看当前已定义的函数定义 declare -f #查看指定当前已定义的函数名 declare -f func_name #查看当前已定义的函数名定义 declare -F func_name 3、删除函数 unset func_name 4、函数调用 函数的调用方式,可在交互式环境下定义函数 可将函数放在脚本文件中作为它的一部分 可放在只包含函数的单独文件中 调用:函数只有被调用才会执行,通过给定函数名调用函数,函数名出现的地方,会被自动替换为函数 代码 函数的生命周期:被调用时创建,返回时终止 三、函数的返回值 函数的执行结果返回值: 使用echo等命令进行输出 函数体中调用命令的输出结果 函数的退出状态码: 默认取决于函数中执行的最后一条命令的退出状态码 自定义退出状态码,其格式为: return 从函数中返回,用最后状态命令决定返回值 return 0 无错误返回 return 1-255 有错误返回 四、环境函数 类拟于环境变量,也可以定义环境函数,使子进程也可使用父进程定义的函数 定义环境函数: export -f function_name declare -xf function_name 查看环境函数: export -f declare -xf 五、函数参数 函数可以接受参数: 传递参数给函数:在函数名后面以空白分隔给定参数列表即可,如:testfunc arg1 arg2 ... 在函数体中当中,可使用$1, $2, ...调用这些参数;还可以使用$@, $*, $#等特殊变量 六、函数变量 变量作用域: 普通变量:只在当前shell进程有效,为执行脚本会启动专用子shell进程;因此,本地变量的作用 范围是当前shell脚本程序文件,包括脚本中的函数 环境变量:当前shell和子shell有效 本地变量:函数的生命周期;函数结束时变量被自动销毁 注意: 如果函数中定义了普通变量,且名称和局部变量相同,则使用本地变量 由于普通变量和局部变量会冲突,建议在函数中只使用本地变量 在函数中定义本地变量的方法 local NAME=VALUE 七、函数递归 函数递归:函数直接或间接调用自身,注意递归层数,可能会陷入死循环 递归特点: 函数内部自已调用自已 必须有结束函数的出口语句,防止死循环 标签:function,...,shell,第十二天,函数,定义,变量,name From: https://www.cnblogs.com/dujy/p/17964087