linux – 在一个Makefile规则里面重定向stdout和stderr

我想将脚本的输出重定向到另一个程序.我通常会使用这两种形式:
python test.py 2>&1 | pyrg
 python test.py |& pyrg

我的问题是它不能在一个makefile里面工作:

[Makefile]
test:
    python test.py 2>&1 | pyrg [doesn't work]

我希望避免编写一个可以完成工作的脚本文件.

编辑:

这似乎是一个pyrg问题:

python test.py 2>&1 | tee test.out // Writes to the file both stderr and stdout
cat test.out | pyrg                // Works fine!
python test.py 2>&1 | pyrg         // pyrg behaves as if it got no input

这是一个坏的解决方案,因为我没有得到猫的部分,以防测试失败(一切都在Makefile规则内)

解决方法

我偶然遇到同样的问题,对答案不满意.我有一个二进制TLBN,在测试用例example2.TLBN上失败.

这是我的make文件首先看到的.

make:
     ./TLBN example2.TLBN > ex2_output.txt

哪个失败,我正在期待和停止make进程的错误消息.

这是我的修复:

make:
    -./TLBN example2.TLBN > ex2_output.txt 2>&1

注意 – 在行的开头,告诉make忽略stderr的任何输出.

希望这有助于有类似问题的人.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...