exec を使用して Go でパイプを使用してコマンドを実行する
os/exec を使用して Go でパイプを使用してコマンドを実行しようとする場合パッケージを使用するには、パイプのメカニズムがどのように機能するかを理解することが重要です。 Command() 関数の最初のパラメーターは実行可能ファイルを表し、パイプ自体とは異なります。パイプを正常に確立するには、bash や cmd などの外部コマンドを利用してパイプ処理の側面を処理する必要があります。
次のコマンドを検討してください。
phantomjs runner.js | ffmpeg -y -c:v png -f image2pipe -r 25 -t 10 -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart dragon.mp4
このコマンドには、phantomjs を使用してイメージを生成することが含まれます。次に、ffmpeg にパイプされてビデオが作成されます。 Go でパイプを使用してこのコマンドを実行するには、次のコードを使用します。
cmd := exec.Command("bash", "-c", cmdString) output, err := cmd.Output() if err != nil { return fmt.Sprintf("Failed to execute command: %s", cmdString) } fmt.Println(string(output))
この例では、実行可能ファイルとして bash を使用してコマンドを作成し、引数としてコマンド文字列を指定します。 Output() メソッドは、結合された標準出力と標準エラーをバイト配列としてキャプチャします。最後に、出力を文字列として出力します。
bash や cmd などの外部コマンドの機能を利用することで、os/exec パッケージを使用して Go のコマンド間のパイプをシームレスに確立でき、複雑なパイプラインを実行できるようになります。効果的に。
以上が`os/exec` パッケージを使用して Go でパイプされたコマンド (例: phantomjs | ffmpeg) を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。