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!