函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell 也支持函数。Shell 函数必须先定义后使用。一般定义格式如下:
fun() { commands return value }
上述语句定义一个名为fun的函数,它的作用是执行里面的命令。
也可以在函数名前加function关键字表明这是一个函数。如:
function fun() { commands return value }
shell中的函数是有返回值的,shell默认是将最后一名命令的执行结果作为返回值的,也可以显式的增加返回语句return value。要获得返回值,则在函数执行后用$?获取。
注意,shell不能直接返回一个字符串,如果非要返回一个字符串,可以在波函数内定义一个变量用来保存要返回的字符串,然后在需要用到它的时候直接获取对应字符串的值。
先来看一个简单的例子:
#!/bin/bash fun() { echo "This is a function" } fun 运行结果 : This is a function
这是不需要考虑返回值的函数。
接下来看一个带返回值的函数:
#!/bin/bash fun() { echo "This function returns a value of 5" return 5 } fun echo "The returned value is $?"
运行结果:
The returned value is 5
注意,shell中调用函数不需要加括号。