如果语句Makefile tcsh

时间:2018-06-13 13:01:17

标签: makefile csh tcsh

我想要类似的东西:

my_rule:
       if($(VAR) == $@) then
             echo 'ok'
       else
             echo 'ko'
       endif

我必须使用 tsch ,但我知道Makefile使用 sh ,所以我真的不知道我是否必须在这里使用sh或tcsh if语句语法...? tsch脚本中if语句的正确语法是(我已选中):

#!/bin/csh

if(3 == 3) then
    echo 'yes'
else
    echo 'no'
endif

我尝试在我的Makefile中放置;\,但没有任何效果。

1 个答案:

答案 0 :(得分:2)

shell取自变量SHELL,如果未指定,则默认为/bin/sh。假设你没有覆盖shell,那么你的语法是:

my_rule:
       if [ "$(VAR)" == "$@" ]; then \
         echo 'ok'; \
       else \
         echo 'ko'; \
       fi

您需要使用\将这些行连接到一个配方行中。请注意,这不会引入实际的换行符,因此您还必须使用;手动终止每个命令。最后,在变量周围加上引号,这样如果一个变为空白,则不会出现语法错误。