shell中有条件的makefile

时间:2013-11-21 13:03:49

标签: makefile sh

无法使用此功能,尝试使用条件[] bash括号引号等所有内容

if $$? !=“0”从不匹配但是$$?有时不为零。有任何想法吗 ?

test: testdrivers
-@rc=0; \
   for file in $(TSTFILES); do  \
     ./$$file; \
     if  $$? != "0" ; then  \
     echo test fail;\
                 rc=`expr $$rc + 1` ;\
     fi \
    done; \
  echo; echo "Tests failed: $$rc"

2 个答案:

答案 0 :(得分:9)

shell脚本中数值比较的正确语法是:

if [ $$? -ne 0 ]; then

确定在方括号之后之前有空格。它们不能与论点相同。

此外,您在fi

之后错过了分号
    fi; \
done; \

答案 1 :(得分:0)

以下以一个为例:

SHELL=/bin/bash
abc=all 
all:
    @ echo $(SHELL)
    @if [ $@ == $(abc) ]; then echo hi; fi;
    @echo done

输出将是:

/bin/bash
hi
done