$${HOME} 或 ${HOME} ?

问题描述 投票:0回答:1
$ 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}

linux bash shell makefile environment-variables
1个回答
17
投票

是和不是。最好使用

$$
来明确。然而,环境变量有一个特殊的规则

make中的变量可以来自make运行的环境。 make 启动时看到的每个环境变量都会转换为具有相同名称和值的 make 变量。但是 makefile 中的显式赋值或使用命令参数会覆盖环境。 (如果指定了“-e”标志,则环境中的值将覆盖 makefile 中的分配。请参阅选项摘要部分。但这不是推荐的做法。)

© www.soinside.com 2019 - 2024. All rights reserved.