我想要这样的东西:
my_rule:
if($(VAR) == $@) then
echo 'ok'
else
echo 'ko'
endif我必须使用tsch,但我知道Makefile使用 sh ,所以我真的想知道在这里是否必须使用sh或tcsh语句语法.?tsch脚本中if语句的正确语法是(我检查过):
#!/bin/csh
if(3 == 3) then
echo 'yes'
else
echo 'no'
endif我试图将;和\放在我的Makefile中,但是没有任何效果。
发布于 2018-06-13 14:04:25
外壳是从变量SHELL中提取的,如果没有指定,默认为/bin/sh。假设您没有覆盖shell,那么您的语法将是:
my_rule:
if [ "$(VAR)" == "$@" ]; then \
echo 'ok'; \
else \
echo 'ko'; \
fi您需要使用\将这些行连接到一个菜谱行中。注意,这并没有引入实际的新行,因此您还必须使用一个;手动终止每个命令。最后,在变量周围放置引号,这样如果其中一个碰巧是空的,就不会出现语法错误。
https://stackoverflow.com/questions/50837966
复制相似问题