如何写入终端而不写入process.stdout或process.stderr?

时间:2016-05-23 15:31:33

标签: node.js tty

我想将内容记录到终端而不将其写入process.stdoutprocess.stderr,以便管理流程不会被这些日志污染。

这相当于bash中的echo "hello" > /dev/tty(请参阅this question),但我找不到如何从节点直接访问/dev/tty

2 个答案:

答案 0 :(得分:2)

只需将其作为文件打开并写入:)

var fs  = require('fs');
var tty = fs.createWriteStream('/dev/tty');

console.log('hello');
tty.write('foo\n');
tty.write('bar\n');

答案 1 :(得分:0)

所以我找到了一种方法,但这可能被视为作弊;)

var exec = require('child_process').exec
process.stdout.write('writing to stdout')
exec("echo 'writing to the terminal without writing to stdout' > /dev/tty")