gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:54:53 26 4
gpt4 key购买 nike

我正在使用 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())
}

关于go - 如何从 exec 命令获取错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53779177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com