2011-06-27 12 views
15

のMakefile:ショーとこのmakefileで

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 

なぜそれが最初にそれを実行して、コマンドを示していますか? 最初の行はどのように省略できますか?

答えて

30

コマンドの先頭に@文字を付けます。例:

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

説明を追加できますか? – DarthSpeedious

+2

@DarthSpeedious:説明は暗黙的です。問題は「どのように表示して実行するか」でしたか?答えは "@文字の前に" – Flimzy