我想要类似的东西:
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中放置;
和\
,但没有任何效果。
答案 0 :(得分:2)
shell取自变量SHELL
,如果未指定,则默认为/bin/sh
。假设你没有覆盖shell,那么你的语法是:
my_rule:
if [ "$(VAR)" == "$@" ]; then \
echo 'ok'; \
else \
echo 'ko'; \
fi
您需要使用\
将这些行连接到一个配方行中。请注意,这不会引入实际的换行符,因此您还必须使用;
手动终止每个命令。最后,在变量周围加上引号,这样如果一个变为空白,则不会出现语法错误。