Heim >Backend-Entwicklung >Golang >Wie kann ich die Ausgabe des Golang-Befehls „exec' zuverlässig in einer Datei erfassen und speichern?
Beim Ausführen von Befehlen in Golang mit dem Exec-Paket kann es vorkommen, dass Sie die Standardausgabe erfassen und schreiben möchten es in eine Datei. Hier ist eine detaillierte Anleitung, wie Sie dies erreichen können:
Der anfängliche Ansatz bestand darin, eine Standardausgabe-Pipe zu erstellen, einen Writer einzurichten, den Befehl zu starten und dann die Standardausgabe in die Datei zu kopieren. Diese Methode führte jedoch gelegentlich zu einer leeren Ausgabedatei.
Dank der Erkenntnisse von KirkMcDonald im IRC-Kanal #go-nuts entstand eine einfachere Lösung. Indem Sie die Ausgabedatei direkt cmd.Stdout zuweisen, kann die Standardausgabe des Befehls direkt in die Datei geschrieben werden. Hier ist der überarbeitete Code:
package main import ( "os" "os/exec" ) func main() { // Create the command to be executed cmd := exec.Command("echo", "'WHAT THE HECK IS UP'") // Open the output file for writing outfile, err := os.Create("./out.txt") if err != nil { panic(err) } defer outfile.Close() // Assign the output file to the command's stdout cmd.Stdout = outfile // Start the command and wait for it to finish err = cmd.Start(); if err != nil { panic(err) } cmd.Wait() }
Mit dieser Verbesserung wird der Inhalt der Standardausgabe des Befehls direkt in die angegebene Datei geschrieben. Die Datei ist nicht mehr leer und liefert die erwartete Ausgabe.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe des Golang-Befehls „exec' zuverlässig in einer Datei erfassen und speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!