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