【发布时间】:2015-08-26 17:56:30
【问题描述】:
我有一个像这样的javascript 文件。
var val = "foo"
console.log(val)
//EVALMD-STDOUT-FILE-DELIMETER
if (!val) var val = "bar"
console.log(val)
//EVALMD-STDOUT-FILE-DELIMETER
console.log(val)
我可以通过两种方式运行它。
node example.js
或者我可以使用cat 输入。
cat example.js | node
我试图弄清楚如何在我的情况下通过分隔符 //EVALMD-STDOUT-FILE-DELIMETER 拆分像 cat example.js 这样的标准输出,并将每个 node 作为单独的进程进行管道传输,而不是记录 foo, foo,foo 我应该得到foo, bar,然后是一个错误。
上面的文件应该被拆分并解释为 3 个“块”
一个:
var val = "foo"
console.log(val)
两个:
if (!val) var val = "bar"
console.log(val)
三个:
console.log(val)
【问题讨论】:
-
在该示例中,
val的定义只会出现在node的第一个实例中。我的解释对吗? -
另外,您是否提前知道您将拥有多少个分隔符,或者您是否希望它动态找到它并在每次找到时启动一个新的节点实例?
-
@EricRenouf 当node运行上面的js时
val被声明一次,是的。 -
@EricRenouf 我不知道字符串中有多少个分隔符。
-
我的
val问题更像是在与这些分隔符拆分时您将拥有 3 个“文件”,其中只有一个会包含var val = "foo"行,另外两个会里面没有那条线,对吧?
标签: javascript node.js bash unix pipe