以下是一个简化版的Makefile:
all:
@for (( i = 0; i < 5; ++i )); do \
var="$$var $$i"; \
echo $$var; \
done
@echo $$var
我猜测"var"的值是"0 1 2 3 4",但输出结果为:
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
<--- NOTHING!!!
正如您所看到的,最后一次输出的是“NOTHING”。出了什么问题?
@
是一种反模式,特别是会妨碍调试。大多数情况下,不要使用它来编写你的规则,如果你不想看到make
的操作过程,请使用make -s
。 - tripleee