制作:使用cat合并带有换行符的文件

时间:2019-07-27 11:13:46

标签: shell for-loop makefile gnu-make cat

我正在为用Markdown编写的一些个人文档编写一个makefile,并希望在构建时将所有文件合并在一起,因此我不必每次添加新文件时都对Makefile进行编辑。这是我的代码:

MERGE:
        @printf "Merging all files into one...\n"
        @cp .yaml tmp
        @for file in *.md;\
         do\
         cat $$file;\
         echo "";\
         done > tmp
        @mv tmp tmp.md

A,每当我运行它时,make都会返回并冻结:

Merging all files into one...
cat: 0: No such file or directory

我已经读到我可能正在将cat称为文件?但是我使用的是正确的for语法,并将$转义为$$

那么我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下循环:

for file in *.md; do
   cat "$file"
   echo ""
done >> tmp.md