登录
首页 >  Golang >  Go问答

如何从 exec 命令获取错误消息

来源:stackoverflow

时间:2024-04-04 13:27:34 468浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《如何从 exec 命令获取错误消息》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我正在使用 go 创建 cli。我正在执行一个命令,如果操作系统抛出错误,我想打印它。

cmd := exec.command("abc", "run", pathtofile)
err := cmd.start()
if err != nil {
    fmt.printf("error : %v \n", err)
    os.exit(1)
}
err = cmd.wait()
if err != nil {
    fmt.printf("error: %v \n", err)
    os.exit(1)
}

这只给我退出状态代码

error:  exit status 1

这不够描述性。

当我直接在终端中运行命令时,我清楚地收到错误消息。

source does not exist 'test.exe'

有办法打印消息吗?


解决方案


stderrpipe 返回一个管道,该管道将在命令启动时连接到命令的标准错误。

cmd := exec.Command("abc", "run", pathToFile)
stderr, _ := cmd.StderrPipe()
if err := cmd.Start(); err != nil {
    log.Fatal(err)
}

scanner := bufio.NewScanner(stderr)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>