Exec um comando shell no Go

Estou procurando executar um comando shell no Go e obter a saída resultante como uma string no meu programa. Eu vi oRosetta Code version:

package main
import "fmt"
import "exec"

func main() {
  cmd, err := exec.Run("/bin/ls", []string{"/bin/ls"}, []string{}, "", exec.DevNull, exec.PassThrough, exec.PassThrough)
  if (err != nil) {
    fmt.Println(err)
    return
  }
  cmd.Close()

Mas isso não captura o padrão real ou erra de uma maneira que eu possa acessar programaticamente - eles ainda imprimem no stdout / stderr regular. Vi que usar o Pipe como saída ou erro poderia ajudar em outro lugar, mas nenhum exemplo de como fazê-lo. Alguma ideia

questionAnswers(6)

yourAnswerToTheQuestion