在我的makefile中,我有一个名为indent-fast
-
indent-fast:
# astyle --style=allman --indent=tab `find . -name "*.java"`
files=`find . -name "*.java"` ; \
for file in $$files ; do \
echo formatting $$file ; \
done ;\
# to do a whitesmith at 4 spaces, uncomment this line --
# astyle --style=whitesmith --indent=spaces=4 `find . -name "*.java"`
但是当我执行它时,我得到了这个输出 -
ramgorur@ramgorur-pc:~$ make indent-fast
# astyle --style=allman --indent=tab `find . -name "*.java"`
files=`find . -name "*.java"` ; \
for file in $files ; do \
echo formatting $file ; \
done ;\
formatting ./File1.java
formatting ./File2.java
formatting ./File3.java
.
.
.
formatting ./FileN.java
# to do a whitesmith at 4 spaces, uncomment this line --
# astyle --style=whitesmith --indent=spaces=4 `find . -name "*.java"`
为什么它会显示脚本以及std输出上的注释?另请注意,indent-fast
是文件中的最后一个目标。
答案 0 :(得分:2)
因为您的评论在食谱中缩进,所以它们不是make
条评论,而是作为食谱的一部分执行。在这种情况下,它们是shell评论。如果这是您的目标,您可以添加@
以防止输出它们。
配方中的注释将传递给shell,就像使用任何其他配方文本一样。 shell决定如何解释它:这是否是注释取决于shell。
简单示例makefile:
# make comment
target:
# shell comment
:
@# output-suppressed shell comment
@:
执行:
$ make
# shell comment
:
编辑:由于一个例子不够好,这里是您确切问题的解决方案:
indent-fast:
@# astyle --style=allman --indent=tab `find . -name "*.java"`
@files=`find . -name "*.java"` ; \
for file in $$files ; do \
echo formatting $$file ; \
done
@# to do a whitesmith at 4 spaces, uncomment this line --
@# astyle --style=whitesmith --indent=spaces=4 `find . -name "*.java"`