$ cat Makefile
all:
echo VAR is ${HOME}
echo VAR is $${HOME}
Gives
$ 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}}
是和不是。最好使用$$
要明确。然而,环境变量有一个特殊的规则 https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_6.html#SEC68:
make 中的变量可以来自 make 运行的环境。 make 启动时看到的每个环境变量都会转换为具有相同名称和值的 make 变量。但是 makefile 中的显式赋值或使用命令参数会覆盖环境。 (如果指定了“-e”标志,则环境中的值将覆盖 makefile 中的分配。请参阅选项摘要部分。但这不是推荐的做法。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)