【发布时间】:2013-02-05 14:23:27
【问题描述】:
我正在尝试使用child_process.spawn 函数。语法是
child_process.spawn(command, args=[], [options])
每当我在 args 数组的任何元素中包含空格时,该命令都会简单地发出参数。这是我用来测试的一些代码
var spawn = require("child_process").spawn
console.log("This works");
var watcher = spawn("ls", ["-l"]);
watcher.stdout.on('data', function(data) {
process.stdout.write(data.toString());
});
console.log("This does not work");
watcher = spawn("ls", ["-l", "/path with space in it"]);
watcher.stdout.on('data', function(data) {
process.stdout.write(data.toString());
});
这是节点中的错误吗?我需要逃离这个空间吗?
编辑:上面的代码只是一个例子。这是真正的代码。 可能和管道有关?
watcher = spawn("supervisor", ["--extensions\ 'coffee|js|css|coffeekup'", "src/app.coffee"]);
【问题讨论】:
-
在 REPL 中的 Linux 上使用 Node 0.6.17 对我来说似乎可以正常工作。在根级别创建了一个同名目录,并使用了您的代码。
-
也从文件中工作。您能否提供更多信息,例如 Node 版本和操作系统?
-
你运行的是什么版本的节点?
-
我刚刚从源代码重建到版本 0.6.19,我正在运行 linux。
-
应该编辑问题。
spawn("ls", ["-l", "/path with space in it"])按预期工作;spawn("supervisor", ["--extensions 'coffee|js|css|coffeekup'", "src/app.coffee"])未按 OP 预期工作。
标签: javascript node.js