1

我希望将 stderr & stdout 的结果记录到不同的文件中,同时查看终端的两个输出。

所以我使用,并在此页面tee中找到了解决方案。

但可悲的是,它在放入 makefile 时无法工作:

all:
    @command > >(tee stdout.log) 2> >(tee stderr.log >&2)

似乎make将用于sh -c执行这一行,这对语法不太了解。

我们可以为此提供另一种解决方案吗?

4

2 回答 2

2

为了在您的系统中使用此语法,您需要通过设置变量Makefile来更改用于运行命令的 shell 。SHELL

通过调用 make using: make SHELL=/bin/bash,或SHELL:=/bin/bash在它的开头放置Makefile它应该可以完成此操作。

于 2013-05-09T15:25:11.513 回答
0

一种蛮力的方法是不在makefile中开球,而是在后台使用tail -f文件之一:

$ tail -f stderr.log & tail -f stdout.log
[... ^C]
$ kill $!
于 2013-05-09T14:56:27.280 回答