Maison > développement back-end > Golang > Comment exécuter des commandes Linux intégrées à partir de programmes Go ?

Comment exécuter des commandes Linux intégrées à partir de programmes Go ?

Barbara Streisand
Libérer: 2024-11-26 10:10:11
original
209 Les gens l'ont consulté

How to Execute Built-in Linux Commands from Go Programs?

Exécuter des commandes Linux intégrées à partir de programmes Go

Tenter d'exécuter des commandes shell dans des programmes Go peut rencontrer des problèmes avec les commandes intégrées, qui ne se trouvent pas dans le $PATH comme les binaires traditionnels. Cet article explique comment exécuter des commandes Linux intégrées à partir de programmes Go.

Dans l'exemple fourni, l'exécution de "command -v foo" directement à l'aide de exec.Command() échoue car la commande est un shell intégré. fonction. Pour gérer cela, il existe plusieurs approches :

exec.LookPath

La prise en charge native de Go pour la recherche de commandes intégrées est disponible via exec.LookPath. Cette fonction recherche un exécutable dans le PATH du système et renvoie son chemin complet s'il est trouvé. Une fois localisé, vous pouvez utiliser ce chemin pour exécuter la commande.

exec.Command avec Shell Wrapper

Lorsque l'exécution directe n'est pas réalisable, vous pouvez utiliser le shell du système pour exécuter des commandes intégrées. Ceci peut être réalisé en encapsulant la commande dans une commande shell, telle que :

exec.Command("/bin/bash", "-c", "command -v foo")
Copier après la connexion

Ici, le wrapper "/bin/bash -c" demande au système d'exécuter la commande dans un shell, ce qui rend construit -in commandes accessibles.

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