$ cat Makefile
all:
echo VAR is ${HOME}
echo VAR is $${HOME}
给出
$ make
echo VAR is /home/abc
VAR is /home/abc
echo VAR is ${HOME}
VAR is /home/abc
为什么echo VAR is ${HOME}
语法在Makefile中有效?我想,要使用shell变量,你必须使用$${HOME}}
答案 0 :(得分:3)
是和否。最好使用$$
来明确。但是,there is a special rule for environment variables:
make中的变量可以来自运行make的环境。在启动时查看的每个环境变量都将转换为具有相同名称和值的make变量。但是makefile中的显式赋值或命令参数会覆盖环境。 (如果指定了`-e'标志,则环境中的值会覆盖makefile中的赋值。请参阅选项摘要。但不建议这样做。)