我希望将 stderr & stdout 的结果记录到不同的文件中,同时查看终端的两个输出。
所以我使用,并在此页面tee
中找到了解决方案。
但可悲的是,它在放入 makefile 时无法工作:
all:
@command > >(tee stdout.log) 2> >(tee stderr.log >&2)
似乎make
将用于sh -c
执行这一行,这对语法不太了解。
我们可以为此提供另一种解决方案吗?
为了在您的系统中使用此语法,您需要通过设置变量Makefile
来更改用于运行命令的 shell 。SHELL
通过调用 make using: make SHELL=/bin/bash
,或SHELL:=/bin/bash
在它的开头放置Makefile
它应该可以完成此操作。
一种蛮力的方法是不在makefile中开球,而是在后台使用tail -f文件之一:
$ tail -f stderr.log & tail -f stdout.log
[... ^C]
$ kill $!