Maison > développement back-end > Golang > Comment récupérer le code de sortie d'une commande système en Go ?

Comment récupérer le code de sortie d'une commande système en Go ?

Patricia Arquette
Libérer: 2024-12-19 07:59:32
original
154 Les gens l'ont consulté

How to Retrieve the Exit Code of a System Command in Go?

Comment obtenir le code de sortie à l'aide de Go

Dans Go, le package os/exec fournit les moyens d'exécuter des commandes système. Cependant, récupérer le code de sortie pose un défi.

Récupérer le code de sortie en cas de succès

Lorsqu'une commande se termine avec le code de sortie 0, la fonction cmd.Wait() renvoie néant.

Récupérer le code de sortie en cas d'échec (pour Linux Uniquement)

Pour les systèmes Linux, l'extrait de code suivant montre comment obtenir le code de sortie lorsque la commande échoue :

import (
    "fmt"
    "log"
    "os/exec"
    "syscall"
)

func main() {
    cmd := exec.Command("git", "blub")

    if err := cmd.Start(); err != nil {
        log.Fatalf("cmd.Start: %v", err)
    }

    if err := cmd.Wait(); err != nil {
        if exiterr, ok := err.(*exec.ExitError); ok {
            fmt.Printf("Exit Status: %d", exiterr.ExitCode())
        } else {
            log.Fatalf("cmd.Wait: %v", err)
        }
    }
}
Copier après la connexion

Aucune approche multiplateforme

Malheureusement, il n'existe pas de méthode multiplateforme pour récupérer le code de sortie en cas d'échec. L'API os/exec ne dispose pas de cette fonctionnalité de par sa conception.

Ressource supplémentaire

Cet article complet développe ce sujet et fournit des détails techniques supplémentaires : http://golang. org/pkg/os/exec/

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal