Подавить эхо вызова команды в 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 ""\