在bash脚本中检查C程序的返回值?

时间:2010-02-22 09:50:30

标签: c linux bash

我有一个bash脚本,我使用$检查上次运行命令的退出代码?变量,但现在我正在执行一个C程序(从该脚本),如果程序成功执行,它返回0。有什么方法可以在我的bash脚本中捕获C程序的返回值吗?

我相信不同的命令,如awk,sed等都是用C语言编写的。他们如何使用$?将退出代码存储在其中?如何让我的C程序将其退出代码存储在$ ??

我希望我的问题很明确。

3 个答案:

答案 0 :(得分:12)

没有必要做任何事情 - 如果你的C程序返回0,那将存储在执行它的shell的$?变量中。

答案 1 :(得分:1)

bash自动捕获$?中的退出代码。或者,如果你只关心零/非零,你可以使用if中的命令。

答案 2 :(得分:1)

C程序的返回码是int main()函数返回的值或exit()函数的参数。然后,系统通过wait()系统调用使其可用于其父进程。如果父进程为bash,则此值可通过$?变量提供。