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
740 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!

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