这个问题与其他问题很接近 -我可以从使用 $(command) 启动的子 shell 中获取退出代码吗?
但是,我没有发现任何解决方案可以让我在使用 local 和 eval 时从子 shell 获取退出代码,如本例所示......
test() {
> local WHY="$(eval "echo 'test'"; exit 3)"; echo $?
> }
test
0
这个问题与其他问题很接近 -我可以从使用 $(command) 启动的子 shell 中获取退出代码吗?
但是,我没有发现任何解决方案可以让我在使用 local 和 eval 时从子 shell 获取退出代码,如本例所示......
test() {
> local WHY="$(eval "echo 'test'"; exit 3)"; echo $?
> }
test
0
这很简单:不要使用单个命令,而是拆分:
问题是这
local
是一个带有自己退出代码的内置命令...如果您在分配变量的同时避免该命令,您将从子shell 中获得退出代码。