uray Asked: 2010-03-27 13:36:46 +0800 CST2010-03-27 13:36:46 +0800 CST 2010-03-27 13:36:46 +0800 CST 来自 Bash 脚本的 GCC 编译结果 772 嗨,我对 bash shell 脚本不是很流利,我正在使用由 bash 脚本执行的 gcc 进行一些编译,我怎么知道(检查)编译是否成功?有什么例子吗? scripting bash gcc g++ 4 个回答 Voted Best Answer Zypher 2010-03-27T15:34:35+08:002010-03-27T15:34:35+08:00 由于您是在脚本中执行此操作,因此您也可以在使用$?变量运行时检查命令的退出代码。 您可以执行以下操作: ./configure if [ $? -ne 0 ] then echo Configure failed exit 1 fi make if [ $? -ne 0 ] then echo make failed exit 1 fi make install if [ $? -ne 0 ] then echo make install failed exit 1 fi echo All steps Succeeded 就我个人而言,我倾向于更冗长并在脚本中使用更长的形式,因为您永远不知道将来谁将维护它。 如果它是一次性命令行运行,我会使用 Dennis 和 mibus 已经提到的方法 mibus 2010-03-27T13:38:56+08:002010-03-27T13:38:56+08:00 gcc -o foo foo.c && echo OK :) Dennis Williamson 2010-03-27T14:55:39+08:002010-03-27T14:55:39+08:00 您的问题是“使用 gcc 进行编译”,但我在您的评论中看到您实际上正在使用configureand make。这应该在您的问题中指定。 您可以使用mibus展示的相同技术。 ./configure foo && make && make install && echo OK 除非上一步成功完成,否则不会进行下一步,如果一切顺利,它将打印“OK”。 mdpc 2010-03-27T21:33:22+08:002010-03-27T21:33:22+08:00 需要注意的是,对最终二进制生成可能很重要的警告不会被视为错误。因此,无论如何,对于您的编译/链接是否正确,我不会完全相信退出代码。您仍然应该验证输出。
由于您是在脚本中执行此操作,因此您也可以在使用
$?
变量运行时检查命令的退出代码。您可以执行以下操作:
就我个人而言,我倾向于更冗长并在脚本中使用更长的形式,因为您永远不知道将来谁将维护它。
如果它是一次性命令行运行,我会使用 Dennis 和 mibus 已经提到的方法
gcc -o foo foo.c && echo OK
:)
您的问题是“使用 gcc 进行编译”,但我在您的评论中看到您实际上正在使用
configure
andmake
。这应该在您的问题中指定。您可以使用mibus展示的相同技术。
除非上一步成功完成,否则不会进行下一步,如果一切顺利,它将打印“OK”。
需要注意的是,对最终二进制生成可能很重要的警告不会被视为错误。因此,无论如何,对于您的编译/链接是否正确,我不会完全相信退出代码。您仍然应该验证输出。