我正在config.mk使用一个将由Makefile使用的bash脚本动态生成.该文件构造为:
cat > config.mk <<CFG
SOMEVAR := $value_from_bash1
ANOTHER := $value_from_bash2
CFG
Run Code Online (Sandbox Code Playgroud)
如何确保生成的文件确实包含内容$value_from_bash*,而不是扩展/解释的内容?我可能需要逃避$到$$并\到\\,但是否有其他字符需要进行转义?也许有一个我没有听说过的特殊字面作业?
太空似乎也很麻烦:
$ ls -1
a b
a
$ cat Makefile
f := a b
default_target:
echo "$(firstword $(wildcard ${f}))"
$ make
a
Run Code Online (Sandbox Code Playgroud)
如果我使用f := a\ b它的工作原理(使用引号f := 'a b'也不起作用,makefile只会将其视为常规字符)