Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从NodeJS捕获bash输出_Bash_Node.js - Fatal编程技术网

从NodeJS捕获bash输出

从NodeJS捕获bash输出,bash,node.js,Bash,Node.js,是否可以使用node启动并继续捕获某个bash进程的输出?例如:假设我正在运行tail/some/file,我如何能够持续收听每一行打印的新行并对输出进行操作 var spawn = require('child_process').spawn, tail = spawn('tail', ['-f', '/tmp/somefile']); tail.stdout.pipe(process.stdout); 子进程模块是 child_流程模块是为了完整性,我也添加了这个答案 您可以使用

是否可以使用node启动并继续捕获某个bash进程的输出?例如:假设我正在运行tail/some/file,我如何能够持续收听每一行打印的新行并对输出进行操作

var spawn = require('child_process').spawn,
    tail  = spawn('tail', ['-f', '/tmp/somefile']);
tail.stdout.pipe(process.stdout);
子进程模块是


child_流程模块是

为了完整性,我也添加了这个答案

您可以使用child_process.spawn生成进程并监视其输出。但是,对于像tail、cat等不能长时间或连续运行的命令,您可以直接使用它,它将捕获stdout和stderr的整个输出,并立即将其提供给您

var cp = require("child_process");

cp.exec("tail /some/file", function (err, stdout, stderr) {
    // If an error occurred, err will contain that error object
    // The output for the command itself is held in stdout and stderr vars
});

为了完整起见,我也添加了这个答案

您可以使用child_process.spawn生成进程并监视其输出。但是,对于像tail、cat等不能长时间或连续运行的命令,您可以直接使用它,它将捕获stdout和stderr的整个输出,并立即将其提供给您

var cp = require("child_process");

cp.exec("tail /some/file", function (err, stdout, stderr) {
    // If an error occurred, err will contain that error object
    // The output for the command itself is held in stdout and stderr vars
});

嗯,您需要附加到流程的标准输出…不确定是否可以从node.js执行此操作。@Bobby是的,您可以,事实上非常容易。请参阅子进程模块:嗯,您需要附加到流程的标准输出…不确定是否可以从node.js执行此操作。@Bobby是的,您可以,事实上非常容易。请参阅子进程模块:您还可以运行,它将为您收集stdout和stderr的全部输出。举个例子,比如tail,它会很好的解决问题。如果您有一个连续运行的脚本,那么监视输出流是一个更好的选择。如果您的脚本是连续运行的,例如tail或googleappengine的dev_appserver.py。我将对此进行测试并返回给您。您也可以运行它,它将为您收集stdout和stderr的全部输出。举个例子,比如tail,它会很好的解决问题。如果您有一个连续运行的脚本,那么监视输出流是一个更好的选择。如果您的脚本是连续运行的,例如tail或googleappengine的dev_appserver.py。我会测试一下,然后再给你回复。