<分区>
如果赋值给函数中的局部变量,我如何检查 bash 中命令替换的退出代码?
请参阅以下示例。第二个是我想检查退出代码的地方。
有人对此有好的解决方法或正确的解决方案吗?
$ function testing { test="$(return 1)"; echo $?; }; testing
1
$ function testing { local test="$(return 1)"; echo $?; }; testing
0
<分区>
如果赋值给函数中的局部变量,我如何检查 bash 中命令替换的退出代码?
请参阅以下示例。第二个是我想检查退出代码的地方。
有人对此有好的解决方法或正确的解决方案吗?
$ function testing { test="$(return 1)"; echo $?; }; testing
1
$ function testing { local test="$(return 1)"; echo $?; }; testing
0
最佳答案
如果您查看 local
的手册文件(实际上只是 BASH 内置手册页),它被视为自己的命令,它给出了 0< 的退出代码
成功创建局部变量后。所以 local
正在覆盖最后执行的错误代码。
试试这个:
function testing { local test; test="$(return 1)"; echo $?; }; testing
编辑:我继续为您尝试,它有效。
关于bash - bash局部变量赋值命令替换的退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9524623/