Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash局部变量赋值中命令替换的退出代码_Bash_Exit Code_Local Variables_Command Substitution - Fatal编程技术网

bash局部变量赋值中命令替换的退出代码

bash局部变量赋值中命令替换的退出代码,bash,exit-code,local-variables,command-substitution,Bash,Exit Code,Local Variables,Command Substitution,如果赋值给函数中的局部变量,如何在bash中检查命令替换的退出代码? 请参见以下示例。第二个是我要检查退出代码的地方。 是否有人对此有很好的解决方法或正确的解决方案 $ function testing { test="$(return 1)"; echo $?; }; testing 1 $ function testing { local test="$(return 1)"; echo $?; }; testing 0 如果查看local(实际上只是BASH内置手册页)的man文件,它将

如果赋值给函数中的局部变量,如何在bash中检查命令替换的退出代码?
请参见以下示例。第二个是我要检查退出代码的地方。
是否有人对此有很好的解决方法或正确的解决方案

$ function testing { test="$(return 1)"; echo $?; }; testing
1
$ function testing { local test="$(return 1)"; echo $?; }; testing
0

如果查看
local
(实际上只是BASH内置手册页)的man文件,它将被视为自己的命令,成功创建局部变量后,该命令将给出退出代码
0
。因此,
local
正在覆盖最后执行的错误代码

试试这个:

function testing { local test; test="$(return 1)"; echo $?; }; testing

编辑:我已经为您尝试过了,而且效果很好。

谢谢,就像往常一样,在我发布了我的问题之后,我自己找到了答案,结果与您建议的一样。我只是名声太差了,不能在8个小时过去之前回答自己的问题。但是
manlocal
给了我
local(8postfix)
manpage的手册页,所以不太有用。但我在另一个信息来源上发现了它,那就是
manbash
local
在“SHELL内置命令”部分中提到。help命令返回有关内置命令的文档。请参阅本地帮助。