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

Prevent GNU make from expanding dollar signs in environment variables

有没有办法让 GNU Make 在环境变量中按字面解释美元符号?

使用这个 makefile:

echoFOO:
        echo '$(FOO)'

像这样运行它:

$ FOO='a$bc' make
echo 'ac'
ac

我希望它按字面意思回显 a$bc,但我找不到让 GNU Make 不去管我的环境变量的方法。

我能看到的两种方法来获得你想要的结果。两者的权衡。

$ 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