Как удалить подстроку в make-файле - PullRequest
0 голосов
/ 08 декабря 2018

Строка за строкой, это работает в терминале, но не в make-файле?

test:
    FOO="MACOS" ; \
    FOO=$${FOO//OS/} ; \
    @echo $FOO

Ожидается:

make test
MAC

1 Ответ

0 голосов
/ 08 декабря 2018

Последнее расширение оболочки переменной оболочки FOO должно быть экранировано ($$).И если вы хотите подавить эхо рецепта, поместите @ в начале, а не в середине рецепта.

test:
    @FOO="MACOS" ; \
    FOO=$${FOO//OS/} ; \
    echo $$FOO

Обратите внимание, что вы также можете использовать make-переменные и функции:

FOO := MACOS
FOO := $(patsubst %OS,%,$(FOO))

test:
    @echo '$(FOO)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...