Я хочу выполнить команду оболочки в Go и получить результат в виде строки в моей программе. Я видел версию Rosetta Code :
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()
Но она не фиксирует фактический стандарт или ошибается так, как я могу получить программный доступ - они все еще распечатываются в обычном stdout / stderr. Я видел, что использование Pipe как выход или ошибка может помочь в другом месте, но не было примера того, как это сделать. Есть идеи?