Я хочу выполнить команду оболочки в 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 в качестве out или err может помочь в другом месте, но нет примеров того, как это сделать. Любые идеи?