"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué mi Golang `exec.Command` devuelve "Estado de salida 1"?

¿Por qué mi Golang `exec.Command` devuelve "Estado de salida 1"?

Publicado el 2024-11-17
Navegar:589

Why Does My Golang `exec.Command` Return

Cómo identificar la causa del error "Estado de salida 1" en el comando exec.Command de Golang

Al ejecutar el método exec.Command en Golang , recibir un error de "estado de salida 1" puede resultar frustrantemente vago. La ausencia de información específica dificulta la depuración efectiva.

Para recuperar información más detallada, aproveche la propiedad Stderr del objeto Command. Esto se logra mediante:

var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()

Al redirigir los errores al búfer stderr, puede acceder a ellos en caso de que falle el comando.

if err != nil {
    fmt.Println(fmt.Sprint(err)   ": "   stderr.String())
    return
}

En algunos casos, la salida se muestra tanto en stdout como en stderr. Si el comando devuelve un código de error distinto de cero, como en el siguiente ejemplo:

cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\")

El mensaje de error será:

exit status 1: find: -exec: no terminating ";" or " "

Es importante tener en cuenta que, aunque stderr normalmente indica errores, algunos comandos imprimen errores en stdout o stderr sin devolver un código de error. Por lo tanto, podría ser necesario ajustar su código para acomodar comandos específicos.

Último tutorial Más>

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