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 > outputFile
debe 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 -s
hace 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-Wall
si todavía las imprimiera. Por supuesto, ¿por qué usarías-s
si también quieres ver advertencias?También puedes usar
.SILENT
En este caso,
make hi
dará salida al comando, peromake run
no 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.PHONY
se desea un comando para suprimir la salida, se puede comenzar la sección con:fuente