在makefile中将“ / dev / ttyPS1”替换为\“” / dev / ttyPS1 \“”

时间:2019-10-22 20:17:37

标签: makefile

我正在尝试执行以下替换操作,但没有成功

a="/dev/ttyPS1"
b=$(patsubst \"%\",\\\"\"%\\"\",$(a))  
c=$(subst \",\\\"\",$(a))
$(info $(a) $(b) $(c))

输出:

$ make
"/dev/ttyPS1" "/dev/ttyPS1"   "/dev/ttyPS1"

所需的输出:

$ make
"/dev/ttyPS1" \""/dev/ttyPS1\""   \""/dev/ttyPS1\""

我必须对转义序列做些愚蠢的操作,因为它似乎根本没有改变...我对到达那里的方式(patsubst,subst或其他)没有任何偏好。有任何想法吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您不需要在make语法中使用反斜杠对引号进行转义:引号并不特殊。因此,您的\"的替代项永远不会匹配,因为字符串\"中没有两个字符的字符串"/dev/ttyPS1"

尝试:

a = "/dev/ttyPS1"
b = $(patsubst "%",\""%"\",$(a))  
c = $(subst ",\"",$(a))

$(info $(a) $(b) $(c))