在makefile内的sed命令模式中写入美元符号

在makefile内的sed命令模式中写入美元符号,sed,makefile,pattern-matching,Sed,Makefile,Pattern Matching,我有一个makefile,其中包含以下命令: sed '/^$/d' 当我运行它时,我得到: sed '/^d' sed: -e expression #1, char 3: unterminated address regex 看起来它解释了美元符号,如何防止这种情况发生?您必须将配方中的所有美元符号加倍,否则make会将它们视为引入make变量: sed '/^$$/d' 如果你搜索“美元符号makefile”或类似的东西,你会找到几十个答案,如果不是几百个的话。使用$,它会变成$。看

我有一个makefile,其中包含以下命令:

sed '/^$/d'
当我运行它时,我得到:

sed '/^d'
sed: -e expression #1, char 3: unterminated address regex

看起来它解释了美元符号,如何防止这种情况发生?

您必须将配方中的所有美元符号加倍,否则make会将它们视为引入make变量:

sed '/^$$/d'

如果你搜索“美元符号makefile”或类似的东西,你会找到几十个答案,如果不是几百个的话。

使用
$
,它会变成
$
。看

生成文件:
sed'/^$$/d'

learts@Fastidio:~/tmp$ make
sed '/^$/d'