如何在不写入 process.stdout 或 process.stderr 的情况下写入终端



我想将内容记录到终端,而无需将它们写入process.stdoutprocess.stderr,这样管道过程就不会最终被这些日志污染。

这非常等同于 bash 中的echo "hello" > /dev/tty(请参阅此问题),但我找不到如何直接从节点访问/dev/tty

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

var fs  = require('fs');
var tty = fs.createWriteStream('/dev/tty');
console.log('hello');
tty.write('foon');
tty.write('barn');

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

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

最新更新