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