Bir komutun terminal çıktısını ilerlerken yakalamak istiyorsanız, aşağıdaki örneği kullanabilirsiniz. Verilen komutu çalıştıracak, orijinal çıktıyı yakalayacak ve satır satır yeniden basacaktır. İsterseniz, yazdırmadan önce satırı değiştirebilirsiniz.


Örnek


package main

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

func main() {
cmd := exec.Command("gotest", "-v", "./...")

stdout, err := cmd.StdoutPipe()
if err != nil {
log.Fatal(err)
}

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

buffer := bufio.NewReader(stdout)

for {
line, _, err := buffer.ReadLine()

fmt.Println(string(line))

if err == io.EOF {
break
}
}
}