【shell】获取函数返回值

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell 也支持函数。Shell 函数必须先定义后使用。
Shell 函数的定义格式如下:
xxxx() {
list of commands
[ return value ]
}
xxxx
调用函数只需要给出函数名,不需要加括号。
1)函数返回值,可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值。其中0表示成功,1表示失败,127表示命令未找到。
例如:

#!/bin/sh  
test()
{
    echo "arg1 = $1"  
    xxxx
}
test 1
echo $?         # print return result 
[root@vincent tmp]# ./test.sh 
arg1 = 1
./test.sh: line 5: xxxxx: command not found
127

可以看到返回值为127。
Shell 函数返回值只能是整数,如果返回字符串,往往会得到错误提示:“numeric argument required”。如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值。
2)echo 返回值,把shell函数作为子程序调用,将其结果写到子程序的标准输出。

testFunc()  
{
    local_result='local value'
    echo $local_result  
}

result=`testFunc`
echo $result