我有两个调用产生非常不同的输出:
拨打一个:
dmake -m _makefile_.m 1>> _results.out 2>> _results.out
致电二:
dmake -m _makefile_.m >2&1 >_results.out
dmake对排序进行编译,第一次调用正确地内联编译错误,而第二次调用则将所有编译错误放在顶部。我一直认为这两者都是等价的。这两个电话之间到底有什么区别?这是因为缓冲吗?
答案 0 :(得分:2)
>2&1
不是正确的语法;它会将dmake
命令的输出重定向到名为2
的文件(在后台运行),然后尝试运行名为1
的命令,其输出重定向到{{1} }。
你想:
_results.out
如果要附加到文件,请将dmake -m _makefile_.m >_results.out 2>&1
更改为>
。
我不能100%确定这是否会以你想要的方式散布stdout和stderr。