【问题标题】:Make: Use cat to merge files with linefeedMake:使用 cat 将文件与换行符合并
【发布时间】:2019-12-05 11:28:58
【问题描述】:

我正在为一些用 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

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

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

我听说我可能将cat 称为文件?但我使用了正确的for 语法并将$ 转义为$$

那我做错了什么?

【问题讨论】:

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


    【解决方案1】:

    你可以试试下面的循环:

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

    【讨论】:

    • 它有效。谢谢!在哪里可以找到有关带引号或不带引号传递参数之间区别的文档?
    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 2013-06-25
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2012-05-31
    相关资源
    最近更新 更多