Maison > développement back-end > Golang > Comment capturer et enregistrer de manière fiable la sortie de la commande Golang `exec` dans un fichier ?

Comment capturer et enregistrer de manière fiable la sortie de la commande Golang `exec` dans un fichier ?

DDD
Libérer: 2024-12-02 10:19:13
original
162 Les gens l'ont consulté

How to Reliably Capture and Save Golang `exec` Command Output to a File?

Capture de la sortie de commande et écriture dans un fichier dans Golang

Lors de l'exécution de commandes dans Golang à l'aide du package exec, vous pouvez rencontrer des situations dans lesquelles vous souhaitez capturer la sortie standard et écrire dans un fichier. Voici un guide détaillé sur la façon d'y parvenir :

L'approche initiale impliquait la création d'un tube stdout, la configuration d'un écrivain, le démarrage de la commande, puis la copie de la sortie standard dans le fichier. Cependant, cette méthode aboutissait parfois à un fichier de sortie vide.

Grâce aux informations de KirkMcDonald sur le canal IRC #go-nuts, une solution plus simple a émergé. En attribuant le fichier de sortie directement à cmd.Stdout, la sortie standard de la commande peut être écrite directement dans le fichier. Voici le code révisé :

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()
}
Copier après la connexion

Avec cette amélioration, le contenu de la sortie standard de la commande sera écrit directement dans le fichier spécifié. Le fichier ne sera plus vide, fournissant le résultat attendu.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal