Go で exec.Cmd を使用してコマンド出力をキャプチャしてファイルに保存する
Go では、シェル コマンドを実行する必要がある場合があります。さらに処理または分析するために、標準出力をファイルにキャプチャします。提供されているコード スニペットはこの要件に対処しようとしていますが、コマンドの標準出力 (stdout) を管理する手順が欠落しているため、目的の出力を生成できません。
コマンドの stdout を正常にキャプチャして保存するには、次のようにします。出力ファイルをコマンドの Stdout フィールドに直接割り当てることで、より簡単なアプローチを採用できます。これにより、追加のバッファリングやコピー メカニズムを必要とせずに、コマンドの出力をファイルに直接書き込むことができます。コードの最適化されたバージョンは次のとおりです。
package main import ( "io" "os" "os/exec" ) func main() { // Open the output file for writing outfile, err := os.Create("./out.txt") if err != nil { panic(err) } defer outfile.Close() // Execute the command and assign its stdout to the output file cmd := exec.Command("echo", "'WHAT THE HECK IS UP'") cmd.Stdout = outfile // Execute the command err = cmd.Run() if err != nil { panic(err) } }
このコードでは、ステートメント cmd.Stdout = outfile により、コマンドの標準出力と書き込み用に開いているファイルとの間の接続が確立され、コマンドの出力が直接出力されることが保証されます。ファイルに書き込まれます。コマンドの実行 (cmd.Run) 後、ファイルにはコマンドのキャプチャされた stdout が含まれます。
このアプローチを採用すると、コマンドの出力をキャプチャしてファイルに保存するプロセスが簡素化され、コマンドの出力が必要なくなります。複雑なバッファリングとルーチン操作用。このメソッドは、Go で exec.Cmd を使用して実行されるコマンドの標準出力を管理するための、より効率的で合理的なソリューションを提供します。
以上がGo `exec.Cmd` コマンドの出力をファイルに効率的に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。