![如何知道进程退出时的返回码是什么以及该值通常记录在哪里?](https://linux22.com/image/82361/%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E8%BF%9B%E7%A8%8B%E9%80%80%E5%87%BA%E6%97%B6%E7%9A%84%E8%BF%94%E5%9B%9E%E7%A0%81%E6%98%AF%E4%BB%80%E4%B9%88%E4%BB%A5%E5%8F%8A%E8%AF%A5%E5%80%BC%E9%80%9A%E5%B8%B8%E8%AE%B0%E5%BD%95%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F.png)
如果一个进程运行并退出,它会返回一个非零状态(我个人更喜欢术语“返回代码”);甚至零状态我知道该值就在那里(主要是因为我已经完成了 C++ 编程,并且我知道您可以在方法结束时main()
返回一个值...但也因为如果我运行类似以下内容:
fuser -s ./myfile.txt && echo "a process is accessing your file
”
我知道,echo
如果从进程返回的状态值fuser
是0
,则唯一打印,如果不是,echo
则一起跳过,因为:
“如果没有访问任何指定的文件或发生致命错误,fuser 将返回非零返回代码。”
现在我该如何显示此返回代码以了解其值?因为如果您正在运行fuser
,-silent
例如在脚本中,了解返回代码/状态的值似乎很重要,这样我才能分辨出未被访问的文件和实际致命错误之间的区别。
另外,手册页中是否有一个常见位置记录了进程的返回代码/状态,以便我可以了解该值可能意味着什么?或者是否有一个文档对返回代码应该是什么有标准?
答案1
您可以使用特殊参数访问最后执行的命令的返回代码$?
。除了“0”表示成功、非零表示失败之外,没有任何记录在案的标准(至少没有被广泛采用的标准)。您必须检查manpage
正在运行的特定命令。