防止GNU make扩展环境变量中的美元符号

Dor*_*dus 5 makefile environment-variables

有没有办法在环境变量中使GNU Make解释美元符号?

拿这个makefile:

echoFOO:
        echo '$(FOO)'
Run Code Online (Sandbox Code Playgroud)

像这样运行:

$ FOO='a$bc' make
echo 'ac'
ac
Run Code Online (Sandbox Code Playgroud)

我希望这能在字面上回显一个$ bc,但是我找不到让GNU Make远离环境变量的方法.

Eta*_*ner 5

有两种方法可以得到你想要的结果,我可以看到。两者都要权衡。

$ cat Makefile
all: echoFOO echovFOO

echoFOO:
        echo '$(FOO)'

echovFOO:
        echo '$(value vFOO)'
$ FOO='a$$bc' vFOO='a$bc' make
echo 'a$bc'
a$bc
echo 'a$bc'
a$bc
Run Code Online (Sandbox Code Playgroud)