Shell conditional in makefile

makefile, sh

Solution

The right syntax for a numeric comparison in shell scripting is:

if [ $$? -ne 0 ]; then

Be sure you have spaces BEFORE and AFTER the square brackets. They cannot be in the same word as the arguments.

Also you're missing a semicolon after the `fi`:

    fi; \
done; \

Problem

Cant get this to work , tried everything for the conditional [] bash brackets quotes etc The if $$? != "0" never matches but the $$? is non zero at times. Any ideas ? ``` 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" ```

Original source