2012-11-26 64 views
1

第二个输入参数($ 2)是c程序的路径。 我需要检查该C程序是否编译。Shell脚本 - (编译C)

我相信这是如何编译C程序:

cc $2 

程序如何判断C程序文件编译或不?

+5

检查'$ ?'等于0? – chrisaycock

+0

谢谢。我会试试看。 – J0natthaaann

+0

看看返回代码,并做你需要做的。看看一个shell教程。 –

回答

2

假设这是一个POSIX壳(如bash)的,你可以写这样的事:

cc "$2" 
if [ $? = 0 ] ; then 
    # . . . commands to run if it compiled O.K. . . . 
else 
    # . . . commands to run if it failed to compile . . . 
fi 

或略偏简洁:

if cc "$2" ; then 
    # . . . commands to run if it compiled O.K. . . . 
else 
    # . . . commands to run if it failed to compile . . . 
fi 

在特殊情况下,你根本如果编译失败,想运行某个命令,例如exit 1,你可以写这样的:

cc "$2" || exit 1 
+0

将会是'='还是'-eq'?我有点困惑 – Omkant

+1

@Omkant:无论哪种方式。 '='是字符串相等,'-eq'是数字相等。在这种情况下,它们都是相同的。 – ruakh

+0

好的..明白了,谢谢 – Omkant

0

Bash - shell您可以直接使用下面的,没必要的if

cc $2 
    [ $? -ne 0 ] && exit 1 

    # rest of code 

,或者您可以使用,

cc $2 
if [ $? -eq 0 ]; then 
# code for true 
else 
# code for false 
fi