Maison >développement back-end >Golang >Pourquoi l'ajout de « -o cpu » à My Go « exec.Command » pour « top » provoque-t-il une erreur et comment puis-je la corriger ?

Pourquoi l'ajout de « -o cpu » à My Go « exec.Command » pour « top » provoque-t-il une erreur et comment puis-je la corriger ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-17 04:21:25817parcourir

Why Does Adding

Utilisation des arguments de ligne de commande avec Go

Ce code Go récupère avec succès les détails de 10 processus à l'aide de la commande "top" avec des arguments spécifiques :

package main

import (
    "os/exec"
)

func main() {
    print(top())
}

func top() string {
    app := "/usr/bin/top"

    cmd := exec.Command(app, "-n", "10", "-l", "2")
    out, err := cmd.CombinedOutput()

    if err != nil {
        return err.Error() + " " + string(out)
    }

    value := string(out)
    return value
}

Cependant, un argument supplémentaire "-o cpu" provoque un erreur :

cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")

Dans la console, la commande "top -o cpu -n 10 -l 2" fonctionne comme prévu. Le problème réside dans la manière dont l'argument "-o" est passé à la commande "top".

Pour résoudre ce problème, il est nécessaire de séparer explicitement les arguments comme :

cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")

Cela garantit que les arguments sont transmis correctement à la commande, lui permettant de s'exécuter correctement.

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!

Déclaration:
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