bash中的函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。

1.1、函数的定义

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分支,最终,我们自己return1出去; 如果走了else分支,此函数的执行结果就是brew install $1这个命令的执行结果了。

1.2、函数的调用

函数的调用与命令是完全一样的,你只要把函数看成命令即可。

示例:

installByBrew jdk java