函数调用
函数的调用:
可在交互式环境下定义函数,即直接在bash命令行里写函数和调用函数。
可将函数放在脚本文件中作为它的一部分,即在同一个脚本文件里调用函数。
可放在只包含函数的单独文件中,即其他shell脚本可以调用这个文件,用. path/to/functions_file或者source path/to/functions_file
函数调用很简单:
无参数:function_name
有参数:functions_name arg1 arg2 ... argN
functions_name为函数名,arg为argument(参数)的意思。在函数体中当中,可使用$1, $2调用这些参数;还 可以使用$@, $*, $#等特殊变量
函数返回值
函数有两种返回值:
函数的执行结果返回值:
(1) 使用echo等命令进行输出
(2) 函数体中调用命令的输出结果
函数的退出状态码:
(1) 默认取决于函数中执行的最后一条命令的退出状态码
(2) 自定义退出状态码,其格式为:
return 从函数中返回,用最后状态命令决定返回值。
return 0 无错误返回。
return 1-255 有错误返回。
函数中的局部变量
当函数中有变量的时候,和函数体外的变量容易冲突,这时候可以用局部变量
在函数中定义局部变量的方法:
local NAME=VALUE
环境函数(全局函数)
export -f func或者declare -fx func
declare中,-f的意思是function,-x的意思是export
递归函数
函数直接或间接调用函数自身。
阶乘:
#!/bin/bash
fact() {
if [ $1 -eq 0 -o $1 -eq 1 ]; then
echo 1
else
echo $[$1*$(fact $[$1-1])]
fi
}
fact $1
转载于:https://blog.51cto.com/14331877/2409508