若不引用目录,则只在当前终端shell生效
一、定义格式:3种
①、
func_name(){
函数体
}
②、
function func_name{
函数体
}
③、
function func_name(){
函数体
}
二、查看函数
declare -F [func_name] 查看所有已定义的函数名
declare -f [func_name] 查看所有已定义的函数内容
三、调用
直接写func_name
四、使函数通用
格式:
source 函数文件
函数文件中的函数名
五、小功能
source /etc/init.d/functions
action "成功"
action "失败" false
六、函数返回:return 0
七、函数传入参数
与脚本的参数传入一样。$1、$2、$3…
八、函数与脚本变量同名
脚本变量会被干扰,不起作用。设置本地变量local解决此问题
九、递归函数
例1:阶乘脚本
#!/bin/bash
fun(){
if [ $1 -eq 1 ];then
echo 1 #赋予fun 1的值为1
else
echo $[`fun $[$1-1]`*$1]
fi
}
fun $1
例2:bomb炸弹
: (){ : |:&};: