makefile - 在 makefile 中将“/dev/ttyPS1”替换为 \""/dev/ttyPS1\""
问题描述
我正在尝试执行此替换但没有任何成功,
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 或其他)。有任何想法吗?谢谢。
解决方案
您不需要在 make 语法中使用反斜杠转义引号:引号不是特殊的。因此,您的 subst\"
永远不会匹配,因为 string 中没有两个字符\"
的字符串"/dev/ttyPS1"
。
尝试:
a = "/dev/ttyPS1"
b = $(patsubst "%",\""%"\",$(a))
c = $(subst ",\"",$(a))
$(info $(a) $(b) $(c))
推荐阅读
- java - 是否可以以编程方式设置项目参数可绘制的 xml 文件?
- ios - 带有虚线的圆圈 uiview
- mysql - 从表 1 中最多限制 10 个 id,并从表 2 中获取与表 1 的 id 匹配的所有记录
- python - 如何在 cross_val_predict 中传递自定义模型构建
- salesforce - 如何通过 Salesforce 更新 NetSuite?
- python - 如何在 Python 3 中使用 youtube-dl 流式传输视频
- python - 检查结构是否为空(python)
- docker - 为什么 docker 不能将 COPY 文件构建到 /dev 文件夹?
- python - 通过 dask-yarn 加载 YarnCluster 会导致 java 错误
- node.js - ProxyPass 与 apache 一起使用节点 js,框架 adonis.js