Maison > développement back-end > Golang > Comment puis-je exécuter des commandes intégrées à Linux depuis Go ?

Comment puis-je exécuter des commandes intégrées à Linux depuis Go ?

DDD
Libérer: 2024-12-02 13:34:14
original
850 Les gens l'ont consulté

How Can I Execute Linux Built-in Commands from Go?

Exécution de commandes Linux intégrées à partir de Go

Lorsque vous tentez de déterminer la présence d'un programme sous Linux à l'aide de exec.Command(" command", "-v", "foo"), vous pouvez rencontrer une erreur indiquant que "command" n'a pas été trouvé dans $PATH. En effet, la « commande » est un shell Linux intrinsèque intégré, et non un binaire exécutable.

Pour exécuter des commandes intégrées à partir de Go, vous disposez de quelques options :

1. Utilisation de exec.LookPath :

Comme suggéré dans l'article fourni, vous pouvez utiliser la fonction exec.LookPath pour rechercher dans $PATH la commande que vous devez exécuter.

path, err := exec.LookPath("command")
if err != nil {
    // Handle error
}
// Use path to execute the command
Copier après la connexion

2. Utilisation d'une invocation de shell externe :

Vous pouvez également appeler la commande depuis un shell en utilisant la syntaxe suivante :

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

Cela exécutera la "commande" intégrée dans le shell Bash.

3. Utilisation de l'exécution du shell :

Si vous devez exécuter plusieurs commandes ou effectuer des opérations plus complexes, vous pouvez utiliser la fonction os/exec.Command pour exécuter un script shell :

cmd := exec.Command("sh", "my-script.sh")
cmd.Run()
Copier après la connexion

Cela exécutera le contenu de my-script.sh dans le shell actuel.

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal