Capturer et enregistrer la sortie d'une commande dans un fichier à l'aide de exec.Cmd dans Go
Dans Go, vous devrez peut-être exécuter des commandes shell et capturez leur sortie standard dans un fichier pour un traitement ou une analyse ultérieure. Bien que l'extrait de code fourni tente de répondre à cette exigence, il ne parvient pas à produire le résultat souhaité en raison d'étapes manquantes dans la gestion de la sortie standard (stdout) de la commande.
Pour réussir à capturer et enregistrer la sortie standard de la commande, nous peut utiliser une approche plus simple en attribuant directement le fichier de sortie au champ Stdout de la commande. Cela permet d'écrire directement le résultat de la commande dans le fichier sans nécessiter de mécanismes de mise en mémoire tampon ou de copie supplémentaires. Voici une version optimisée du code :
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) } }
Dans ce code, l'instruction cmd.Stdout = outfile établit une connexion entre la sortie standard de la commande et le fichier ouvert en écriture, garantissant que la sortie de la commande est directement écrit dans le fichier. Après l'exécution de la commande (cmd.Run), le fichier contiendra la sortie standard capturée de la commande.
En adoptant cette approche, vous simplifiez le processus de capture et d'enregistrement de la sortie de la commande dans un fichier, éliminant ainsi le besoin pour les opérations de mise en mémoire tampon et de routine complexes. Cette méthode fournit une solution plus efficace et rationalisée pour gérer la sortie standard des commandes exécutées à l'aide de exec.Cmd dans Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!