在从 stdout 读取修改后的内容之前,我试图运行一个子进程来修改文件(分两步)。 我正在尝试通过使用进程替换来做到这一点,它在 bash 中完美运行,但当我从 Node 尝试时却不行。
这有点像命令的样子..
var p = exec('command2 <(capture /dev/stdout | command1 -i file -) -',
function (error, stdout, stderr) {
console.log(stderr);
});
标准错误打印:
/bin/sh: -c: line 0: syntax error near unexpected token `('
在 Node 中执行此操作的正确方法是什么?
最佳答案
我通过将命令放在 shell 脚本中并从 Node 子进程调用脚本来解决这个问题。 我还需要添加以下内容以将 bash 设置为 posix 模式以允许进程替换:
set +o posix
可能有一种更好的方法可以直接从 Node 内执行此操作,但它完成了工作。 干杯!
关于node.js - 进程替换 - Node.js child_process,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17860339/