golang执行shell指令时报错exit 1问题及解决

 更新时间:2026年06月25日 09:35:15   作者:昵称系统有问题  
这段描述主要介绍了在Go语言中使用`exec`包执行shell命令时,并,遇到错误时推荐使用`CombinedOutput`获取完整输出信息,以便于进行调试和问题定位

1、前言

ok,前面我们说过一个go执行shell指令的最佳方式,

今天这里再介绍一种方式,当你遇到执行shell报错找不到原因时可以尝试一下,

主要来自:

https://stackoverflow.com/questions/18159704/how-to-debug-exit-status-1-error-when-running-exec-command-in-golang/18159705

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. 总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Gin框架中异步任务的实现

    Gin框架中异步任务的实现

    Gin框架中的异步任务处理是指在Web应用中以非阻塞的方式处理耗时操作或后台任务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • 一文详解Go语言切片是如何扩容的

    一文详解Go语言切片是如何扩容的

    切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。所以本文就来看看Go语言切片是如何扩容的吧
    2023-04-04
  • Golang中字符串(string)与字节数组([]byte)一行代码互转实例

    Golang中字符串(string)与字节数组([]byte)一行代码互转实例

    golang语言本身就是c的工具集,开发c的程序用到的大部分结构体,内存管理,携程等,golang基本都有,下面这篇文章主要给大家介绍了关于Golang中字符串(string)与字节数组([]byte)一行代码互转的相关资料,需要的朋友可以参考下
    2022-09-09
  • Go 语言中程序编译过程详解

    Go 语言中程序编译过程详解

    本文旨在深入探讨Go语言的编译机制和最新的模块管理系统——Go Modules,通过详细的示例和步骤,我们将演示从简单的 “Hello World” 程序到使用第三方库的更复杂项目的开发过程,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • Go语言实现常见限流算法的示例代码

    Go语言实现常见限流算法的示例代码

    计数器、滑动窗口、漏斗算法、令牌桶算法是我们常见的几个限流算法,本文将依次用Go语言实现这几个限流算法,感兴趣的可以了解一下
    2023-05-05
  • 详解Golang如何优雅接入多个远程配置中心

    详解Golang如何优雅接入多个远程配置中心

    这篇文章主要为大家为大家介绍了Golang如何优雅接入多个远程配置中心详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • golang修改结构体中的切片值方法

    golang修改结构体中的切片值方法

    这篇文章主要介绍了golang修改结构体中的切片值方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • golang生成RSA公钥和密钥的实现方法

    golang生成RSA公钥和密钥的实现方法

    本文主要介绍了golang生成RSA公钥和密钥的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Go模块布局管理文档翻译理解

    Go模块布局管理文档翻译理解

    这篇文章主要为大家介绍了Go模块布局管理文档翻译理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 详解Go语言中泛型的实现原理与使用

    详解Go语言中泛型的实现原理与使用

    本文是对泛型的基本思想及其在 Go 中的实现的一个比较容易理解的介绍,同时也是对围绕泛型的各种性能讨论的简单总结,感兴趣的可以学习一下
    2022-05-05

最新评论