函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。
bash
中函数的定义如下:
[function] fn() {
command...
[return integer]
}
function
关键字是可以省略的。function
关键字是bash
自己增加的, 与POSIX
不兼容。
函数可以有return
语句,也可以没有。 如果有return
语句的话,只能return
一个整数,如果想从一个函数得到其他结果, 只能是通过echo
命令输出,然后,在使用的地方用`
符号或者$
将输出重定向变量即可。
要特别注意,bash
中函数的return
与输出的不同。
如果没有return
语句的话,那么函数中的最后一条语句的执行结果,作为返回值返回去。
示例:
function installByBrew() {
if command -v "$2" &> /dev/null; then
echo "$1 is already installed!"
return 1
else
brew install "$1"
fi
}
这个函数,如果走了if
分支,最终,我们自己return
了1
出去; 如果走了else
分支,此函数的执行结果就是brew install $1
这个命令的执行结果了。
函数的调用与命令是完全一样的,你只要把函数看成命令即可。
示例:
installByBrew jdk java