Maison >développement back-end >Golang >Comment exécuter efficacement des scripts Bash depuis Go ?

Comment exécuter efficacement des scripts Bash depuis Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-26 07:04:09692parcourir

How to Execute Bash Scripts from Go Effectively?

Exécuter des scripts Bash depuis Go

Le défi

Pour exécuter un script bash depuis Go , vous avez essayé d'utiliser le package os/exec mais avez rencontré des difficultés lors de la saisie du chemin du script ou de son contenu comme arguments. Ce script définit des variables et effectue des tâches spécifiques.

La solution

Pour exécuter avec succès un script bash depuis Go, considérez les étapes suivantes :

Prérequis

  • Assurez-vous que le script bash commence par #!/bin/sh ou #!/bin/bash.
  • Rendez le script exécutable en exécutant chmod x .

Utilisation du package os/exec

Si vous préférez utiliser os/exec, modifiez votre code comme suit :

cmd := exec.Command("/bin/sh", mongoToCsvSH)
out, err := cmd.Output()

Ici, "/bin/sh" indique l'interpréteur pour exécuter le script, suivi du chemin d'accès à votre script bash, mongoToCsvSH.

Approche alternative

Au lieu d'utiliser os/exec, vous pouvez exploiter le code suivant pour exécuter le script :

import (
    "io/ioutil"
    "os"
)

func main() {
    content, err := ioutil.ReadFile("mongoToCsvSH.sh")
    if err != nil {
        log.Fatal(err)
    }

    err = os.WriteFile("run.sh", content, 0755)
    if err != nil {
        log.Fatal(err)
    }

    cmd := exec.Command("./run.sh")
    cmd.Run()
}

Cette approche lit le contenu du script bash, l'écrit dans un fichier temporaire "run.sh" avec l'autorisation exécutable (chmod 0755), puis l'exécute.

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:
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