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

标签 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 内置手册页),它被视为自己的命令,它给出了 0< 的退出代码 成功创建局部变量后。所以 local 正在覆盖最后执行的错误代码。

试试这个:

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

编辑:我继续为您尝试,它有效。

关于bash - bash局部变量赋值命令替换的退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9524623/

相关文章:

bash - 如何设置$?或 Bash 中的返回码?

c - 为什么2个不同的字符串在C中具有相同的地址?

linux - 使用 "find … -delete"仅从特殊子目录中删除图像文件

c++ - 如何在子终端窗口中执行程序?

linux - 如何用变量替换 awk 命令的管道输出

c - 指针退出代码 6

python - IndexError : list index out of range , while finding the first non-consecutive number in a list in python

c++ - 在哪里释放在函数内部创建的动态数组的内存

python - 为什么 exec() 中的符号定义语句有时对本地符号表没有影响?

涉及从剪贴板搜索文本的 Bash 脚本