ホームページ > バックエンド開発 > Golang > Go で「exec.Command()」を使用してパイプされたコマンドを正しく実行する方法は?

Go で「exec.Command()」を使用してパイプされたコマンドを正しく実行する方法は?

Patricia Arquette
リリース: 2024-12-27 19:15:12
オリジナル
171 人が閲覧しました

How to Correctly Execute Piped Commands in Go using `exec.Command()`?

exec.Command() を使用して Go でパイプを使用してコマンドを実行する

「ps cax | grep myapp」などのパイプを伴うコマンドを実行しようとすると、 exec.Command("ps", "cax | grep myapp").Output() を使用すると、終了ステータス 1 が発生する可能性があります。エラー。

このようなコマンドを効果的に処理するには、より慣用的な解決策として、複数の exec.Command インスタンスを利用し、それらの入力ストリームと出力ストリームを接続する必要があります。

慣用的なアプローチがどのように機能するかを詳しく説明します。

  1. コマンドを作成します: 別の exec.Command を初期化しますパイプライン内の各コマンドのインスタンス (この場合は「ps」や「grep」など)。
  2. ストリームを接続します: StdoutPipe メソッドと Stdin メソッドを使用して、 「ps」コマンドを「grep」コマンドの標準入力に追加します。
  3. 最初のコマンドを開始します:パイプラインの最初のコマンドを開始します。通常は出力の生成を担当するコマンドで、この例では「ps」です。
  4. 出力をキャプチャします: 2 番目のコマンドが終了して取得するのを待ちます。

このアプローチを採用すると、パイプを介したチェーンを必要とするコマンドを効果的に実行でき、入力と出力を適切に処理できます。ストリーム。

以上がGo で「exec.Command()」を使用してパイプされたコマンドを正しく実行する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート