ホームページ >バックエンド開発 >Golang >Go のシェル コマンドからリアルタイム出力を取得するにはどうすればよいですか?

Go のシェル コマンドからリアルタイム出力を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-11 02:56:09262ブラウズ

How to Retrieve Realtime Output from Shell Commands in Go?

Go のシェル コマンドからリアルタイム出力を取得する

問題:

を実行したいGo のシェル コマンド。時間がかかり、リアルタイム出力を取得して処理し、進行状況として表示する場合があります。

解決策:

1.シェル コマンドの実行には os/exec を使用します。

exec.Command を使用してコマンドを作成し、目的のシェル コマンドを実行します。

2.標準エラー (stderr) 出力のキャプチャ:

デフォルトでは、シェル コマンドからの診断メッセージは stdout ではなく stderr に送信されます。 cmd.StderrPipe() を使用して、stderr ストリームをキャプチャします。

3.出力を読み取るスキャナーの作成:

bufio.NewScanner を使用して、stderr ストリームを読み取るスキャナーを作成します。 bufio.ScanWords を使用してスキャンをワードに分割し、個々の出力行を取得します。

4.出力の処理と表示:

ループ内で、scanner.Scan() メソッドを使用して各出力行を取得します。これを処理して、進捗率などの必要な情報を抽出します。次に、処理された出力を表示します。

5.コード例:

これを行う方法を示すコード例:

これらの手順に従うことで、シェル コマンドと処理からリアルタイム出力を取得できます。進行状況情報やその他の必要な情報を表示します。

以上がGo のシェル コマンドからリアルタイム出力を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。