在 linux 中发出更多命令后,有没有办法获得进程退出状态?

mut*_*ity 7 linux linux-kernel exit-status

如果我发出了很多命令,并且我想要退出的进程的退出状态,比如 100 个命令前。linux 中是否有结构、文件位置或变量,我可以访问所有退出的进程并查看有关它们的信息?

Mar*_*art -2

  set -o pipefail 
Run Code Online (Sandbox Code Playgroud)

非常接近你想要的;它会

在管道的所有组件完成之前,管道不会完成,返回值将是最后一个失败的非零命令的值,如果没有命令失败,则返回值为零。

因此,如果您有 40 个命令通过管道连接在一起,并且第三个命令给出的返回代码为 8,而其余命令成功完成,则总体返回代码将为 8。要找出哪个命令给出错误的返回代码将很棘手。

  • 是的,谢谢。管道还有一个 PIPESTATUS[0] 环境变量。这只是一般情况。 (2认同)