为什么Make中的`shell`命令删除换行符?

时间:2015-04-22 04:00:36

标签: makefile

根据此处的Make文档:http://www.ecoop.net/coop/translated/GNUMake3.77/make_8.html#SEC80

  

在将结果替换为周围文本之前,对结果进行的唯一处理是将每个换行符或回车符/换行符对转换为单个空格。它还会删除尾随(回车和换行)换行符,如果它是结果中的最后一行。

为什么Make会完成这个处理?

如果没有递归通配符命令,能够从find返回分隔列表肯定会很好。

1 个答案:

答案 0 :(得分:2)

使用变量时,变量的值将被替换。 Make docs(例如"定义"在C中)。

新行会对make的解析能力造成严重破坏。

虽然可以在变量中添加新行: Another question

我想它只是因为"没有新线"是最常用的情况。在尝试替换它们之前,您可以使用其他shell命令将这些新行替换为其他内容。