-1

所以我有一些 ruby​​ 代码循环将字符串放入标准输出,puts然后使用sleep. 然后,我有一些 node.js 代码在标准输入上侦听数据事件,并简单地记录它从标准输入获得的内容。

如果我跑echo 'something' | node my_code.js,我会看到一些东西,但如果我跑,ruby my_code.rb | node my_code.js我什么也看不到。

我是否无法使用 UNIX 管道将标准输出从 ruby​​ 代码重定向到 node.js 代码的标准输入?

4

2 回答 2

0

两者之间应该没有什么区别,Ruby 代码应该没问题。

但是,您发现了一些问题。如果你运行 Ruby 会发生什么tee

ruby my_code.rb | tee file

你看到输出了吗?如果没有,请开始调查您的 Ruby 代码。(当你运行它而不用管道输出它时它工作吗?)。如果您确实看到了预期的输出,Ruby 程序是否停止(退出)?你得到你的命令行提示符了吗?

如果 Ruby 没有任何异常,那么当您通过管道将多行文件传递给 JavaScript 时会发生什么:

cat my_code.rb | node my_code.js

我希望其中一种情况能够为您提供一些追逐的东西。

于 2013-03-31T07:18:21.790 回答
0

试试这个:

ruby my_code.rb | awk '{print;fflush()}' | node my_code.js

或这个:

ruby my_code.rb | grep --line-buffer '.*' | node my_code.js
于 2013-03-31T13:42:55.577 回答