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