我有一个bash脚本,我使用$检查上次运行命令的退出代码?变量,但现在我正在执行一个C程序(从该脚本),如果程序成功执行,它返回0。有什么方法可以在我的bash脚本中捕获C程序的返回值吗?
我相信不同的命令,如awk,sed等都是用C语言编写的。他们如何使用$?将退出代码存储在其中?如何让我的C程序将其退出代码存储在$ ??
中我希望我的问题很明确。
答案 0 :(得分:12)
没有必要做任何事情 - 如果你的C程序返回0,那将存储在执行它的shell的$?
变量中。
答案 1 :(得分:1)
bash自动捕获$?
中的退出代码。或者,如果你只关心零/非零,你可以使用if
中的命令。
答案 2 :(得分:1)
C程序的返回码是int main()
函数返回的值或exit()
函数的参数。然后,系统通过wait()
系统调用使其可用于其父进程。如果父进程为bash
,则此值可通过$?
变量提供。