Подавить Эхо вызова команды в makefile?
Я написал программу для задания, которая должна вывести свой вывод на stdout. Спецификация присваивания требует создания файла Makefile, который при вызове как make run > outputFile следует запустить программу и записать вывод в файл, который имеет отпечаток пальца SHA1, идентичный тому, который указан в спецификации.
моя проблема в том, что мой makefile:
...
run:
java myprogram
также выводит команду, которая запускает мою программу (например, java myprogram) в выходной файл, так что мой файл включает в себя эта дополнительная линия вызывает отпечаток пальца, чтобы быть неправильным.
есть ли способ выполнить команду без вызова команды эхом в командной строке?
4 ответов:
добавить
@к началу команды, чтобы сказать gmake не печатать выполняемую команду. Вот так:run: @java myprogramкак предположил Оли, это особенность Make, а не Bash.
С другой стороны, Bash никогда не будет Эхо-команды выполняются, если вы не скажете ему сделать это явно (т. е. с ).
вы также можете использовать
.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