Node.JS 不换行写入标准输出

Node.JS write to stdout without a newline

我的感觉大概是不可能的: 我正在尝试在没有新行的情况下在终端文本上打印。 我试过 process.stdout.writenpm jetty 但它们似乎都自动在末尾附加了一个新行。

是否可以在没有自动换行的情况下写入 stdout? 明确一点:我不关心浏览器,我只对 UNIX/Linux 写 C/C++ 中的内容等同于:

std::cout << "blah";
printf("blah");

据此link process.stdout.write():

console.log 等效项可能如下所示:

console.log = function(msg) {
  process.stdout.write(`${msg}\n`);
};

所以process.stdout.write应该能满足你的要求...

process.stdout.write() 不会自动添加新行。如果您 post 确切地了解您认为它为什么会这样,我们可能会告诉您您是如何感到困惑的,但是虽然 console.log() 确实 添加换行符,process.stdout.write() 没有多余的装饰,不会写任何你没有明确传递给它的东西。

这里有一个 shell session 提供支持证据:

echo 'process.stdout.write("123")' > program.js

node program.js | wc -c
       3