shell 函数返回值与echo内容的获取

954 阅读1分钟

写了个shell函数

调用完之后不知道怎么获取返回值,于是乎想当然用上了$(func_name)来获取,然后踩了几个坑

查看教程之后发现要用$?来获取刚刚执行的函数的返回值,

function func1() {
echo 1
return 2
echo 3
}
 
res=$(func1)
echo $res

输出结果为 1,使用$()的方式获取不到返回值,只能拿到打印的内容

function func1() {
echo 1
return 2
echo 3
}
func1
echo $?
res=$?
echo $res

输出结果为

1
2
0

$? 在一次调用后便被回收了

再次调用无法获取函数的返回值 如何获取呢? 用变量接收即可 如

function func1() {
echo 1
return 2
echo 3
}
func1
res=$?
echo $res
echo $res

结果为

1
2
2

希望能帮助到小伙伴们~