Maison >développement back-end >Golang >Comment puis-je exécuter des commandes Shell Linux intégrées à partir d'un programme Go ?
Exécution des commandes intégrées du shell Linux à partir des programmes Go
Cherchant à valider l'existence d'un programme sous Linux, un développeur rencontre une erreur en tentant de exécutez l'utilitaire "command" via un programme Go. Cette erreur provient du fait que « command » est une commande Linux intégrée, et non un binaire exécutable dans le $PATH du système. La question se pose : Comment les commandes Linux intégrées peuvent-elles être exécutées dans les programmes Go ?
Solution Native Go : exec.LookPath
Comme suggéré dans la ressource fournie, le L'utilitaire "command" est un shell intégré. Pour l’exécution native de Go, la fonction exec.LookPath fournit une solution. Cette fonction recherche le chemin exécutable du système pour la commande spécifiée et renvoie le chemin complet s'il est trouvé.
path, err := exec.LookPath("command") if err != nil { // Handle error } fmt.Println(path) // Prints the full path to the command
Approches alternatives
Si la méthode Go native ne convient pas , des approches alternatives existent :
cmd := exec.Command("which", "foobar") out, err := cmd.Output() if err != nil { // Handle error } fmt.Println(string(out)) // Prints the full path to the program (if found)
cmd := exec.Command("/bin/bash", "-c", "command -v foobar") out, err := cmd.Output() if err != nil { // Handle error } fmt.Println(string(out)) // Prints the full path to the program (if found)
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!