我为一项作业(job)编写了一个程序,该程序应该将其输出打印到标准输出.分配规范要求创建一个Makefile,当作为make run > outputFile调用时,该Makefile应运行程序并将输出写入一个文件,该文件具有与规范中给定的相同的SHA1 fingerprint .

我的问题是我的makefile:

...
run:
     java myprogram

还将运行我的程序(例如java myprogram)的命令打印到输出文件中,以便我的文件包含导致 fingerprint 错误的这一额外行.

有没有办法在命令调用不 echo 到命令行的情况下执行命令?

推荐答案

在命令开头加@,告诉gmake不要打印正在执行的命令.这样地:

run:
     @java myprogram

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

另一方面,除非您明确地告诉Bash这样做(即使用-x选项),否则Bash永远不会 echo 正在执行的命令.

Linux相关问答推荐

Linux打开/dev/tran/n是否与复制相同?

创建守护进程时打开0,1,2描述符

如何从大页分配标准数组内存

删除 csv 列中的不匹配值

如何使用 sed debug调试正则表达式?

对一个命令使用不同的 PHP 版本 CLI 可执行文件

如何/在哪里可以找到要修复的 Linux 内核错误?

具体来说,fork() 如何处理 Linux 中 malloc() 动态分配的内存?

判断条件是否为假

低功耗蓝牙:在 linux 中监听通知/指示

何时使用管道与何时使用共享内存

Mac OS X 中的 ldconfig 等效项?

Linux上C中的标准输出线程安全?

将 jiffies 转换为毫秒

如何链接到 GCC 中特定版本的共享库

区分 Windows 和类 Unix 系统的 Makefile

当将信号量减为零的进程崩溃时,如何恢复信号量?

Vim 增量搜索

具有所有内核的 Gzip

适用于 Windows、Linux、MacOS X 的跨平台脚​​本