流式传输命令输出进度
在执行命令的过程中,经常需要将输出流式传输到指定的输出位置并实时日志文件。但是,在处理冗长的过程时,cmd.StdoutPipe 方法仅以字符串形式提供最终结果。本文深入研究了在命令执行过程中启用部分输出流的方法。
问题中提供的示例利用 bufio.NewScanner 通过管道读取标准输出。一个常见的误解是它是逐行读取的。实际上,它通过 bufio.ScanLines 函数定义的换行符读取输入。如果执行的命令不产生换行符,则不会立即返回输出。
解决方法:
要克服此限制,请考虑替代方法:
读取标准输出和错误至关重要,以防止子进程中由于以下原因而潜在的阻塞:完整的缓冲区。默认情况下,子进程的标准输出和错误流将被丢弃。但是,如果不读取标准错误流,可能会出现错误消息丢失的情况。
以上是如何在执行过程中实时流式传输部分命令输出?的详细内容。更多信息请关注PHP中文网其他相关文章!