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 ?

Pourquoi mon Go `exec.Command` échoue-t-il avec plusieurs arguments lorsque la même commande fonctionne dans la console ?

Patricia Arquette
Libérer: 2024-12-19 19:58:15
original
793 Les gens l'ont consulté

Why Does My Go `exec.Command` Fail with Multiple Arguments When the Same Command Works in the 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")
Copier après la connexion

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!

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