使用 exec.Command 在 Golang 中执行管道命令
问题是由于需要无缝执行涉及 phantomjs 和 ffmpeg 的冗长管道命令而产生的在 Golang 程序中。原始命令直接在终端中运行,可以完美运行。然而,使用 os/exec 包重新创建相同的操作具有挑战性。
提供的解决方案围绕利用 exec.Command 函数来启动所需的命令。但是,这种初始方法无法考虑管道分隔符,从而使其无效。
为了解决此限制,修改后的解决方案通过调用 shell 解释器来处理命令,采用更全面的方法。在这种情况下,使用 bash 调用 Bash shell,而实际命令则作为其参数封装在 -c 中。这种技术使 shell 能够解释命令并准确执行它,同时尊重管道分隔符。
生成的代码无缝执行管道命令并捕获任何 stdout 输出,然后可以在 Golang 程序中使用这些输出。这种方法无需编写中间图像文件,简化了流程并确保最佳性能。
以上是如何在 Golang 中执行管道命令(例如 phantomjs | ffmpeg)?的详细内容。更多信息请关注PHP中文网其他相关文章!