我正在使用 bash 脚本,我想执行一个函数来打印返回值:
function fun1(){
return 34
}
function fun2(){
local res=$(fun1)
echo $res
}
当我执行时fun2
,它不打印“34”。为什么会这样呢?
虽然 Bash 有一个return
语句,您唯一可以用它指定的是函数自己的exit
状态(介于0
and 255
, 0 表示“成功”)。所以return
不是你想要的。
您可能想要转换您的return
声明给一个echo
语句 - 这样你的函数输出可以使用捕获$()
大括号,这似乎正是你想要的。
这是一个例子:
function fun1(){
echo 34
}
function fun2(){
local res=$(fun1)
echo $res
}
获取返回值的另一种方法(如果您只想返回 0-255 的整数)是$?
.
function fun1(){
return 34
}
function fun2(){
fun1
local res=$?
echo $res
}
另请注意,您可以使用返回值来使用布尔逻辑 - 例如fun1 || fun2
只会运行fun2
if fun1
返回一个非0
价值。默认返回值是函数内执行的最后一条语句的退出值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)