exec.Command を使用して Golang でパイプされたコマンドを実行する
この問題は、phantomjs と ffmpeg を含む長いパイプされたコマンドをシームレスに実行する必要があることから生じます。 Golang プログラム内で。元のコマンドはターミナルで直接実行され、問題なく機能します。ただし、os/exec パッケージを使用して同じ操作を再作成するのは困難であることがわかります。
提供されるソリューションは、exec.Command 関数を利用して目的のコマンドを開始することを中心に展開しています。ただし、この最初のアプローチではパイプ区切り文字が考慮されていないため、効果がありません。
この制限に対処するために、修正されたソリューションでは、シェル インタープリターを呼び出してコマンドを処理する、より包括的なアプローチが採用されています。この場合、Bash シェルは bash を使用して呼び出されますが、実際のコマンドは引数として -c 内にカプセル化されます。この手法により、シェルはパイプ区切り文字を尊重してコマンドを解釈し、正確に実行できるようになります。
結果として得られるコードは、パイプされたコマンドをシームレスに実行し、stdout 出力をキャプチャし、Golang プログラム内で利用できます。このアプローチにより、中間イメージ ファイルを書き込む必要がなくなり、プロセスが合理化され、最適なパフォーマンスが確保されます。
以上がGolang でパイプされたコマンド (phantomjs | ffmpeg など) を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。