如何从 exec 命令获取错误消息
How to get error message from exec command
我正在使用 Go 创建 CLI。我正在执行命令,如果 OS 抛出错误,我想打印它。
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
returns 命令启动时将连接到命令的标准错误的管道。
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 创建 CLI。我正在执行命令,如果 OS 抛出错误,我想打印它。
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
returns 命令启动时将连接到命令的标准错误的管道。
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())
}