Подавить эхо вызова команды в make файле?

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

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

...
run:
     java myprogram

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

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

Ответ 1

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

run:
     @java myprogram

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

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

Ответ 2

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

Ответ 3

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