Makefile окружение на основе целей - PullRequest
0 голосов
/ 04 апреля 2019

Этот код не работает:

$ cat Makefile
dev:
        AWS_PROFILE=foobar-$@ echo $$AWS_PROFILE

demo:
        AWS_PROFILE=foobar-$@ echo $$AWS_PROFILE

Исходя из моей цели, я хочу правильно настроить AWS_PROFILE для команд в цели.Как достичь этого с GNU Make 4.2.1?

1 Ответ

0 голосов
/ 04 апреля 2019

Добавьте точку с запятой перед командой echo:

dev:
    AWS_PROFILE=foobar-$@; echo $$AWS_PROFILE

Каждая строка рецепта отправляется в отдельную оболочку. Итак, если вы хотите распространять переменные оболочки, вы должны определить и использовать их в одной строке, в том же списке оболочки. Вы также можете использовать && или ||, чтобы присоединиться к отдельным командам оболочки.

Обратите внимание, что для лучшей читаемости вы можете использовать продолжение строки:

dev:
    AWS_PROFILE=foobar-$@; \
    echo $$AWS_PROFILE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...