如何在GO中与另一个用户执行shell命令,并从中获取输出?
我试过了:
cmd :=exec.Command("sudo","su",username, "-c",command)
stdout, err := cmd.StdoutPipe()
CheckErr(err)
cmd.Run()
没有输出。有谁知道怎么做?
答案 0 :(得分:1)
您需要检查运行cmd.Run的输出,并使用stdout获取输出比使用管道更简单。
cmd :=exec.Command("sudo","su",username, "-c",command)
cmd.Stderr = os.Stdout
cmd.Stdout = os.Stdout
err := cmd.Run()
CheckErr(err)
这应该让您可以看到错误,这样您就可以找出阻止sudo发生的事情。