Dans golang comment puis-je écrire la sortie standard d'un exec.Cmd pour un fichier?

Je suis en train d'exécuter une commande shell, capture stdout et d'écrire que la sortie vers un fichier. Cependant, il me semble qu'il manque quelques étapes, comme le fichier que je suis en train d'écrire est vide lorsque le programme existe. Comment puis-je prendre la sortie standard de la commande et de l'écrire dans un fichier?

package main

import (
    "bufio"
    "io"
    "os"
    "os/exec"
)

func main() {

    cmd := exec.Command("echo", "'WHAT THE HECK IS UP'")

    //open the out file for writing
    outfile, err := os.Create("./out.txt")
    if err != nil {
        panic(err)
    }
    defer outfile.Close()

    stdoutPipe, err := cmd.StdoutPipe()
    if err != nil {
        panic(err)
    }

    writer := bufio.NewWriter(outfile)

    err = cmd.Start()
    if err != nil {
        panic(err)
    }

    go io.Copy(writer, stdoutPipe)
    cmd.Wait()
}
InformationsquelleAutor jergason | 2013-09-24