我希望在Go中执行一个shell命令,并在程序中以字符串形式获得结果输出.我看到了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.我发现使用管道作为输出或错误可以在其他地方有所帮助,但没有关于如何做到这一点的例子.有什么 idea 吗?