被转义的换行符是POSIX的一部分吗?

时间:2018-01-03 13:22:22

标签: c makefile posix

POSIX make标准页面可以说明有关转义的换行符(强调我的):

  

整个makefile中对转义的处理是历史实践。例如,推理规则:

.c.o\
:
     

有效,宏:

f=  bar baz\
   biz
a:
   echo ==$f==
     

回应"==bar baz biz=="

“历史实践”是什么意思?

我是否可以在严格符合的POSIX makefile中使用转义换行符?

1 个答案:

答案 0 :(得分:2)

POSIX标准说这是关于转义的换行符(这是实际的标准文本,而不是信息部分或理性的):

  

当转义< 换行符>时(找到一个前面有< 反斜杠>)   makefile中的任何位置,除了命令行,包含行或   紧接在包含线之前的一条线,它应被替换,   以及下一行中的任何前导空格,以及   单个< 空间>。当转义< 换行符>时在命令行中找到   在makefile中,命令行应包含< 反斜杠> ,.   < 换行符>,以及下一行,除了第一个字符   如果是< 标签>,则不应包括下一行。当逃脱   < 换行>可以立即在包含行或行中找到   在包含行之前,行为未指定。

这是针对转义换行符所依赖的POSIX强制行为。