在makefile中抑制命令调用的回显?

我写了一个应用程序打算输出到标准输出。 赋值规范要求创build一个Makefile,当它被调用时, make run > outputFile应该运行该程序并将输出写入一个文件,该文件的SHA1指纹与规范中给出的相同。

我的问题是,我的makefile:

 ... run: java myprogram 

还打印运行我的程序(例如java myprogram)到输出文件的命令,以便我的文件包含这多余的行导致指纹错误。

有没有办法执行一个命令没有命令行回应到命令行?

@添加到命令的开头,告诉gmake不要打印正在执行的命令。 喜欢这个:

 run: @java myprogram 

正如Oli所说,这是Make而不是Bash的一个特点。

另一方面,Bash将永远不会回显正在执行的命令,除非您明确地告诉它(即使用-x选项)。

更简单:make -s(静音模式)!

使用@之前的命令的效果可以通过使用行上的尾部反斜杠扩展命令扩展为“节”。 如果需要伪命令来抑制输出,可以用@printf“”\