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")
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!