Maison >développement back-end >Golang >Pourquoi mon Go `exec.Command` échoue-t-il avec plusieurs arguments lorsque la même commande fonctionne dans la console ?
Exécuter des commandes avec plusieurs arguments
Lors de l'exécution de commandes dans Go, il est important de faire attention à la façon dont les arguments sont transmis à la commande. Un problème récent rencontré par un utilisateur était que l'exécution de la commande "top" avec certains arguments fonctionnait depuis la console mais échouait lors de l'utilisation du package exec.
Le problème
Le code de l'utilisateur, qui a exécuté avec succès "top -n 10 -l 2", n'a pas réussi à exécuter "top -o cpu -n 10 -l 2". Le message d'erreur fourni par le package exec indiquait que l'argument "-o cpu" n'était pas valide.
La solution
Le problème réside dans la manière dont les arguments sont transmis à la commande. L'interpréteur de ligne de commande sur la console sépare automatiquement les arguments, permettant à la commande de les analyser correctement. Cependant, lors de l'utilisation du package exec, les arguments doivent être explicitement séparés.
Pour ce cas particulier, le code correct serait :
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
En séparant les arguments, le package exec peut transmettez-les à la commande comme prévu, résolvant ainsi l'erreur.
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!