Escribí un programa para una tarea que se supone que imprime su salida en stdout. La especificación de asignación requiere la creación de un Makefile que, cuando se invoca, make run > outputFiledebe ejecutar el programa y escribir la salida en un archivo, que tiene una huella digital SHA1 idéntica a la especificada en la especificación.
Mi problema es que mi archivo MAKE:
...
run:
java myprogram
también imprime el comando que ejecuta mi programa (por ejemplo, java myprogram) en el archivo de salida, de modo que mi archivo incluye esta línea adicional que hace que la huella digital sea incorrecta.
¿Hay alguna forma de ejecutar un comando sin que la invocación del comando haga eco en la línea de comando?

make -shace eso, y en mi humilde opinión es una solución mucho mejor aquí de todos modos. Recientemente se publicó como una respuesta separada a esta pregunta.¡Aún más simple, use
make -s(modo silencioso)!fuente
@comandos hace que sea difícil de depurar y agrega mucho desorden..SILENT:objetivo. Ver make.mad-scientist.net/managing-recipe-echoing-Wallsi todavía las imprimiera. Por supuesto, ¿por qué usarías-ssi también quieres ver advertencias?También puedes usar
.SILENTEn este caso,
make hidará salida al comando, peromake runno dará salida.fuente
El efecto de preceder el comando con un
@se puede extender a una sección extendiendo el comando usando una barra diagonal inversa en la línea. Si.PHONYse desea un comando para suprimir la salida, se puede comenzar la sección con:fuente