一、使用$?获取函数的返回值
function myfunc(){
# code ...
return 1
}
myfunc
echo $? # 输出1
当函数执行完成后,可以使用$?获取函数的返回值,$?为shell特殊变量,表示上一个命令或函数的返回值。在函数中使用return语句返回一个整数类型的值,通过$?获取函数的返回值。在上面的代码中,myfunc函数返回1,通过echo $?输出。
二、使用变量获取函数的返回值
function myfunc(){
# code ...
echo 1
}
result=$(myfunc) # $(...)是命令替换,将函数的输出赋值给变量result
echo $result # 输出1
除了使用$?外,也可以通过命令替换将函数的输出赋值给一个变量。在上面的代码中,将myfunc函数的输出赋值给result变量,通过echo $result输出。
三、使用全局变量获取函数的返回值
function myfunc(){
# code ...
RETVAL=1
}
myfunc
echo $RETVAL # 输出1
除了将函数的输出赋值给一个局部变量外,也可以使用全局变量来获取函数的返回值。在上面的代码中,myfunc函数中将1赋值给全局变量RETVAL,在函数执行完成后,通过echo $RETVAL输出。
四、小结
在shell中获取函数的返回值,可以使用$?特殊变量、变量赋值、全局变量等方法来获取。具体选择哪种方法取决于使用场景。在实际使用中,建议使用命令替换或全局变量来获取函数的返回值,避免可能存在的变量覆盖或命名冲突问题。