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
Libérer: 2024-12-26 07:04:09
original
688 Les gens l'ont consulté

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()
Copier après la connexion

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()
}
Copier après la connexion

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!

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