函数调用

函数的调用:

可在交互式环境下定义函数,即直接在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