Makefile If语句生成文件tcsh
我想要像这样的东西:Makefile If语句生成文件tcsh,makefile,csh,tcsh,Makefile,Csh,Tcsh,我想要像这样的东西: my_rule: if($(VAR) == $@) then echo 'ok' else echo 'ko' endif 我必须使用tsch,但我知道Makefile使用sh,所以我真的想知道这里是否必须使用sh或tcsh if语句语法? tsch脚本中if语句的正确语法是(我选中了): 我试着把和\在我的Makefile中随处可见,但都不起作用。shell取自变量shell,
my_rule:
if($(VAR) == $@) then
echo 'ok'
else
echo 'ko'
endif
我必须使用tsch,但我知道Makefile使用sh,所以我真的想知道这里是否必须使用sh或tcsh if语句语法?
tsch脚本中if语句的正确语法是(我选中了):
我试着把
和\
在我的Makefile中随处可见,但都不起作用。shell取自变量shell
,如果未指定,则默认为/bin/sh
。假设您没有覆盖shell,那么您的语法将是:
my_rule:
if [ "$(VAR)" == "$@" ]; then \
echo 'ok'; \
else \
echo 'ko'; \
fi
您需要使用
\
将这些行连接到单个配方行中。请注意,这不会引入实际的换行符,因此您还必须使用手动终止每个命令代码>。最后,在变量周围加上引号,这样如果其中一个恰好为空,就不会出现语法错误。shell取自变量shell
,如果未指定,则默认为/bin/sh
。假设您没有覆盖shell,那么您的语法将是:
my_rule:
if [ "$(VAR)" == "$@" ]; then \
echo 'ok'; \
else \
echo 'ko'; \
fi
您需要使用\
将这些行连接到单个配方行中。请注意,这不会引入实际的换行符,因此您还必须使用手动终止每个命令代码>。最后,在变量周围加上引号,这样如果其中一个恰好为空,就不会出现语法错误。好的,所以我必须使用shell变量中定义的shell语法。所以我必须在shell变量中使用shell定义的语法。谢谢