我做了一个foreach,我正在测试一个条件,如果没有完成,应该为每一行的每个变量打印一条错误消息。
$(foreach file,$(SOURCES),$(if $(shell grep "aaa" "$(file)"),,@echo "" WARNING in: $(file)))
我制作了这段代码,但它在一行中打印(警告:x警告:x ...),我想打印它:
警告:
x
x ...
答案 0 :(得分:2)
您可能需要移除\n
并添加@
。
;
这样你在if语句中的命令就会扩展为:
$(foreach file,$(SOURCES),$(if $(shell grep "aaa" "$(file)"),,echo "" WARNING in: $(file);))
答案 1 :(得分:1)
对于
警告:XXX
警告:XXX
@$(foreach file,$(SOURCES),$(if $(shell grep "aaa" "$(file)"),,echo "" WARNING in: $(file);))
因为一行前面的@in正在取消makefile的回显。