Golang exec.Command 获取执行结果:Output 报错 exit status 1 解决方法
- 获取执行后返回的数据:
可以使用 exec.Command 的 CombinedOutput 方法来获取执行后的标准输出和标准错误输出。示例代码如下:
cmd := exec.Command("ls", "-l")
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
}
fmt.Println(string(output))
- 如果执行完没有输出结果调用 Output 会报错吗?
不会报错。如果没有输出结果,Output 方法会返回一个空字节切片,而不会报错。
- Output 报错 exit status 1,这是啥问题,如何解决?
这个问题通常是因为被执行的命令返回了一个非零的退出状态码,表示命令执行失败。可以通过查看标准错误输出来找到问题所在。示例代码如下:
cmd := exec.Command("ls", "nonexistent_dir")
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(string(output))
fmt.Println(err)
}
在这个示例中,执行的命令是 ls nonexistent_dir,这个目录不存在,所以会返回一个非零的退出状态码,导致 err 不为 nil,而且输出了标准错误信息。可以通过查看标准错误信息来找到问题所在。
原文地址: http://www.cveoy.top/t/topic/jphe 著作权归作者所有。请勿转载和采集!