获取命令替换的退出状态

Jay*_*Jay 3 zsh shell-script command-substitution exit-status

如果我将命令替换的输出分配给局部变量,我如何获得命令的退出状态?

这是 ZSH 5.8 的行为:

false; echo $? # output is 1 as expected

foo=$(false); echo $? # output is 1 as expected

local foo=$(false); echo $? # output is 0
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 6

从赋值中拆分声明:

local foo
foo=$(false)
Run Code Online (Sandbox Code Playgroud)

(另见SC2155。)