首页 > 解决方案 > 如何在makefile函数中传递逗号字符

问题描述

在 Makefile 中定义了一个print函数,它将打印文本作为参数然后打印它。我的问题是如何将逗号字符作为文本部分传递来打印它?例如,下面是相关的 makefile 部分,其中逗号不可打印。

print = echo '$(1)'

help:
        @$(call print, He lives in Paris, does not he?)

现在,如果像运行 makefile 一样:

$ make help 

它打印

$  He lives in Paris

代替

$  He lives in Paris, does not he?

我知道在makefile中逗号用作单独的参数,但是我如何使它成为可打印的。我使用不同的转义字符组合将逗号作为短信传递,\, /, $$, ',' "," 但没有任何效果

标签: shellmakefile

解决方案


手册说:

逗号和不匹配的括号或大括号不能按书面形式出现在参数的文本中;前导空格不能出现在第一个参数的文本中。这些字符可以通过变量替换放入参数值中。

因此,您需要将逗号放入变量中,并在参数中使用它。例如:

print = echo '$(1)'
comma:= ,

help:
        @$(call print,He lives in Paris$(comma) does not he?)

推荐阅读