golang执行shell指令时报错exit 1问题及解决
更新时间:2026年06月25日 09:35:15 作者:昵称系统有问题
这段描述主要介绍了在Go语言中使用`exec`包执行shell命令时,并,遇到错误时推荐使用`CombinedOutput`获取完整输出信息,以便于进行调试和问题定位
1、前言
ok,前面我们说过一个go执行shell指令的最佳方式,
今天这里再介绍一种方式,当你遇到执行shell报错找不到原因时可以尝试一下,
主要来自:
2. 代码
cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\")
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
return
}
fmt.Println("Result: " + out.String())
3. 区别
从名字就可以大致猜出来,run、CombinedOutput分别是命令执行后的运行以及组合的结果,
所以CombinedOutput会将错误信息和执行结果组合起来,
所以如果报错的话通过CombinedOutput可以打印出错误信息,而运行run的话则需要单独捕获错误信息进行打印(还有一个cmd.Output,感兴趣的可以试一下)。
4. 总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Golang中字符串(string)与字节数组([]byte)一行代码互转实例
golang语言本身就是c的工具集,开发c的程序用到的大部分结构体,内存管理,携程等,golang基本都有,下面这篇文章主要给大家介绍了关于Golang中字符串(string)与字节数组([]byte)一行代码互转的相关资料,需要的朋友可以参考下2022-09-09


最新评论