$$ {HOME} или $ {HOME} в Makefile? - PullRequest
       17

$$ {HOME} или $ {HOME} в Makefile?

0 голосов
/ 08 июня 2018
$ 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?Я думал, чтобы использовать переменные оболочки, вы должны использовать $${HOME}}

1 Ответ

0 голосов
/ 08 июня 2018

Да и нет.Лучше использовать $$, чтобы быть явным.Тем не менее, существует специальное правило для переменных среды :

Переменные в make могут поступать из среды, в которой запускается make.Каждая переменная окружения, которая делает make, видит, когда она запускается, преобразуется в переменную make с тем же именем и значением.Но явное присваивание в make-файле или с аргументом команды переопределяет окружение.(Если указан флаг -e, то значения из среды переопределяют назначения в make-файле. Смотрите раздел Сводка опций. Но это не рекомендуется.)

...