"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que meu Golang `exec.Command` retorna "Status de saída 1"?

Por que meu Golang `exec.Command` retorna "Status de saída 1"?

Publicado em 17/11/2024
Navegar:575

Why Does My Golang `exec.Command` Return

Como identificar a causa do erro "Status de saída 1" no exec.Command de Golang

Ao executar o método exec.Command em Golang , receber um erro de "status de saída 1" pode ser frustrantemente vago. A ausência de informações específicas dificulta a depuração eficaz.

Para recuperar informações mais detalhadas, aproveite a propriedade Stderr do objeto Command. Isso é conseguido por:

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

Ao redirecionar erros para o buffer stderr, você pode acessá-los no caso de falha do comando.

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

Em alguns casos, a saída é exibida em stdout e stderr. Se o comando retornar um código de erro diferente de zero, como no exemplo abaixo:

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

A mensagem de erro será:

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

É importante observar que embora stderr normalmente indique erros, alguns comandos imprimem erros em stdout ou em stderr sem retornar um código de erro. Portanto, pode ser necessário ajustar seu código para acomodar comandos específicos.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3