передать строку с пробелами в MakeFile - PullRequest
0 голосов
/ 09 июля 2020

Я хотел бы передать строку с пробелами в качестве аргумента в Makefile.

Например:

make git msg="My message"
git:
    git commit -m $(msg) 

Я пробовал символы (", ') et c. Но это не сработало. Я получаю сообщение:

pathspe c 'message' не соответствует ни одному файлу (-ам), известному git

1 Ответ

0 голосов
/ 10 июля 2020

Вы должны избегать вещей, когда отправляете их в оболочку.

Как всегда при написании рецептов make-файлов первым шагом является запуск команды в приглашении оболочки. Если он не работает из командной строки, он определенно не будет работать в make-файле! Если вы запустите это в командной строке оболочки:

git command -m My message

, вы увидите, что получите ту же ошибку. Что нужно сделать, чтобы устранить эту ошибку go? Вы должны процитировать сообщение, например:

git command -m 'My message'

(или вы можете использовать двойные кавычки в этой ситуации, но в целом одинарные кавычки безопаснее, если вам не нужны двойные кавычки).

Итак, измените свой make-файл на набор:

git:
        git commit -m '$(msg)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...