我为一个作业编写了一个程序,该程序应该将其输出打印到标准输出。分配规范需要创建一个 Makefile,当作为 make run > outputFile
调用时,它应该运行程序并将输出写入一个文件,该文件具有与规范中给出的相同的 SHA1 指纹。
我的问题是我的makefile:
...
run:
java myprogram
还将运行我的程序(例如 java myprogram)的命令打印到输出文件,以便我的文件包含导致指纹错误的额外行。
有没有什么方法可以在命令调用不回显到命令行的情况下执行命令?
最佳答案
将@
添加到命令的开头告诉gmake不要打印正在执行的命令。像这样:
run:
@java myprogram
正如 Oli 所建议的,这是 Make 的一项功能,而不是 Bash 的一项功能。
另一方面,Bash 永远不会回显正在执行的命令,除非你明确告诉它这样做(即使用 -x
选项)。
https://stackoverflow.com/questions/9967105/