Подавить Эхо вызова команды в makefile?



Я написал программу для задания, которая должна вывести свой вывод на stdout. Спецификация присваивания требует создания файла Makefile, который при вызове как make run > outputFile следует запустить программу и записать вывод в файл, который имеет отпечаток пальца SHA1, идентичный тому, который указан в спецификации.



моя проблема в том, что мой makefile:



...
run:
java myprogram


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



есть ли способ выполнить команду без вызова команды эхом в командной строке?

698   4  

4 ответов:

добавить @ к началу команды, чтобы сказать gmake не печатать выполняемую команду. Вот так:

run:
     @java myprogram

как предположил Оли, это особенность Make, а не Bash.

С другой стороны, Bash никогда не будет Эхо-команды выполняются, если вы не скажете ему сделать это явно (т. е. с ).

еще проще: make-s (бесшумный режим)!

вы также можете использовать .SILENT (https://www.gnu.org/software/make/manual/html_node/Special-Targets.html#Special-Targets)

.SILENT: run
    hi:
         echo "Hola!"
    run:
         java myprogram

в этом случае make hi выведет команду, но make run не будет выхода.

эффект, предшествующий команде с @ , может быть расширен до" раздела " путем расширения команды с помощью задней косой черты в строке. Если фальшивая команда желательно, чтобы подавить выход можно начать раздел с @printf""\

Comments

    Ничего не найдено.