root@a2980bfaeb16:/# node a.js 1>stdout.log 2>stderr.log ; cat stdout.log stderr.log >> all.log
root@a2980bfaeb16:/# cat stdout.log
root@a2980bfaeb16:/# cat stderr.log
/a.js:1
(function (exports, require, module, __filename, __dirname) { console.g('Hello World');
^
TypeError: console.g is not a function
at Object.<anonymous> (/a.js:1:71)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Function.Module.runMain (module.js:701:10)
at startup (bootstrap_node.js:194:16)
at bootstrap_node.js:618:3
root@a2980bfaeb16:/# cat all.log
Hello World
/a.js:1
(function (exports, require, module, __filename, __dirname) { console.g('Hello World');
^
TypeError: console.g is not a function
at Object.<anonymous> (/a.js:1:71)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Function.Module.runMain (module.js:701:10)
at startup (bootstrap_node.js:194:16)
at bootstrap_node.js:618:3
2 回答
默认情况下,您有3个变量:
0
,其中包含stdin
,1
,其中包含stdout
,2
,其中包含stderr
,以便能够执行您建议的使用第3个占位符,3
和tee
命令交换上述2个变量的内容:默认tee
仅"catches"stdout
详细解释可以在here找到
下面一个为我工作 -
$ node a.js 1>stdout.log 2>stderr.log ; cat stdout.log stderr.log >> all.log
a.js
演示
stdout
-演示
stderr
(犯了一个愚蠢的错误,看看它是否适用于stderr
) -希望能帮助到你!
PS - 我试图将重定向与管道集成,但还没有运气 .