Heim > Backend-Entwicklung > Golang > Wie führt man Bash-Skripte von Go aus effektiv aus?

Wie führt man Bash-Skripte von Go aus effektiv aus?

Mary-Kate Olsen
Freigeben: 2024-12-26 07:04:09
Original
688 Leute haben es durchsucht

How to Execute Bash Scripts from Go Effectively?

Bash-Skripte von Go aus ausführen

Die Herausforderung

So führen Sie ein Bash-Skript von Go aus aus , Sie haben versucht, das Paket os/exec zu verwenden, sind jedoch auf Probleme bei der Eingabe des Skriptpfads oder seines Inhalts als Argumente gestoßen. Dieses Skript legt Variablen fest und führt bestimmte Aufgaben aus.

Die Lösung

Um ein Bash-Skript von Go aus erfolgreich auszuführen, beachten Sie die folgenden Schritte:

Voraussetzungen

  • Stellen Sie sicher, dass das Bash-Skript mit #!/bin/sh oder beginnt #!/bin/bash.
  • Machen Sie das Skript ausführbar, indem Sie chmod x ausführen.

Verwenden Sie das os/exec-Paket

Wenn Sie lieber os/exec verwenden möchten, ändern Sie Ihren Code wie folgt folgt:

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

Hier gibt „/bin/sh“ den Interpreter zum Ausführen des Skripts an, gefolgt vom Pfad zu Ihrem Bash-Skript, mongoToCsvSH.

Alternativer Ansatz

Anstatt os/exec zu verwenden, können Sie den folgenden Code nutzen, um Folgendes auszuführen Skript:

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()
}
Nach dem Login kopieren

Dieser Ansatz liest den Inhalt des Bash-Skripts, schreibt ihn in eine temporäre „run.sh“-Datei mit ausführbarer Berechtigung (chmod 0755) und führt ihn dann aus.

Das obige ist der detaillierte Inhalt vonWie führt man Bash-Skripte von Go aus effektiv aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage