node.js - 进程替换 - Node.js child_process

标签 node.js bash pipe child-process process-substitution

在从 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/

相关文章:

bash - 重定向期望标准输入产生调用

javascript - 对于所有包,npm install 总是返回 `code ECONNREFUSED` 错误

node.js - 在 CRON 作业中运行 NodeJS 异步函数是个好主意吗?

node.js - 在 Kubernetes 中将 secret 作为环境变量访问

javascript - ExpressJs 在为每个路由发送响应后执行回调

linux - 脚本如果 ls -lrtd 返回文件或目录不存在该怎么办

bash - 如何在反引号内传递 bash 变量

bash - 检查 SVN 版本是否不同

linux - 如何将进程的输出通过管道传输到 logger 命令和 head 命令?

c - 通过管道和 fork 传递具有 2 个动态数组的结构