如何在不写入 process.stdout 或 process.stderr 的情况下写入终端?
how to write to the terminal without writing to process.stdout or process.stderr?
我想将事情记录到终端而不是将它们写入 process.stdout
或 process.stderr
,这样管道过程就不会被这些日志污染。
这非常等同于 bash 中的 echo "hello" > /dev/tty
(参见 this question),但我找不到如何从节点直接访问 /dev/tty
。
所以我找到了一个方法,但这也算是作弊 ;)
var exec = require('child_process').exec
process.stdout.write('writing to stdout')
exec("echo 'writing to the terminal without writing to stdout' > /dev/tty")
只需将其作为文件打开并写入即可:)
var fs = require('fs');
var tty = fs.createWriteStream('/dev/tty');
console.log('hello');
tty.write('foo\n');
tty.write('bar\n');
我想将事情记录到终端而不是将它们写入 process.stdout
或 process.stderr
,这样管道过程就不会被这些日志污染。
这非常等同于 bash 中的 echo "hello" > /dev/tty
(参见 this question),但我找不到如何从节点直接访问 /dev/tty
。
所以我找到了一个方法,但这也算是作弊 ;)
var exec = require('child_process').exec
process.stdout.write('writing to stdout')
exec("echo 'writing to the terminal without writing to stdout' > /dev/tty")
只需将其作为文件打开并写入即可:)
var fs = require('fs');
var tty = fs.createWriteStream('/dev/tty');
console.log('hello');
tty.write('foo\n');
tty.write('bar\n');