Makefile: показать и выполнить

В этом make файле

dirs = $(shell ls)
clean:
    $(foreach dir,$(dirs),echo $(dir);)

Выходной сигнал

$ make clean
echo bin; echo install.sh; echo Makefile; echo README.md; echo utils;
bin
install.sh
Makefile
README.md
utils

Почему он сначала показывает команду, а затем выполняет ее? Как я могу опустить первую строку?

Ответы

Ответ 1

Подготовьте команду с символом @. Пример:

dirs = $(shell ls)
clean:
    @$(foreach dir,$(dirs),echo $(dir);)