如何获取exec包中Run执行完后得到的结果
可以使用os/exec包中的Output()或CombinedOutput()函数来获取Run()执行完后的结果。
Output()函数会返回命令的标准输出结果,如果命令执行失败,则返回错误信息。
示例代码:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l")
output, err := cmd.Output()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(output))
}
CombinedOutput()函数会返回命令的标准输出和标准错误输出结果,如果命令执行失败,则返回错误信息。
示例代码:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l", "nonexistentfile")
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(output))
}
注意:Output()和CombinedOutput()函数会在命令执行完毕后才返回结果,如果命令需要花费很长时间才能执行完毕,建议使用Start()和Wait()函数来异步执行命令并获取结果
原文地址: https://www.cveoy.top/t/topic/fNg2 著作权归作者所有。请勿转载和采集!