depuración "Error de salida 1" Error en Go's Exec.Command
Al cuando se encuentra el Error enigmático "Salir 1" al ejecutar los comandos externos utilizando los golang's Exec.command, puede ser una tarea de inundación a la causa exacta de la causa exacta. Esta breve guía proporcionará información sobre la solución de problemas del error de manera efectiva.
usando stderr para mejorar los mensajes de error
de forma predeterminada, exec.command captura solo la salida estándar (stdout) cuando ejecuta un comando. Para recuperar mensajes de error más detallados, puede utilizar la propiedad STDERR de la estructura exec.command. Aquí está cómo:
cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\") var out bytes.Buffer var stderr bytes.Buffer cmd.Stdout = &out cmd.Stderr = &stderr
ahora, cuando el comando se ejecuta y ocurre un error, el mensaje de error se escribirá en el búfer stderr en lugar de un genérico "sale el estado 1."
ejemplo [&] considere el siguiente código Snippet:
en ejecución, el código mostrará el siguiente mensaje de error detallado:
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())
consideraciones adicionales
exit status 1: find: -exec: no terminating ";" or " "
Vale la pena señalar que algunos comandos pueden no cumplir con la convención de escribir errores a Stderr. Algunos comandos pueden imprimir errores en STDOUT, mientras que otros pueden imprimir errores a STDERR pero aún así devolver un estado de salida exitoso (0). Por lo tanto, puede ser necesario ajustar el código para atender los comandos específicos que está ejecutando.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3