Nahtloses Ausführen von Bash-Skripten von Go aus
Das Ausführen eines Bash-Skripts von Golang aus kann mit der Standardmethode os/exec zu Herausforderungen führen. Um eine gesamte SH-Datei effektiv auszuführen, befolgen Sie diese Schritte:
Für die direkte Ausführung:
Verwenden von /bin/sh mit Skriptpfad:
cmd := exec.Command("/bin/sh", mongoToCsvSH)
Beispielskript (Pfad und ausführbare Berechtigungen vorausgesetzt):
OIFS=$IFS; IFS=","; # fill in your details here dbname=testDB host=localhost:27017 collection=testCollection exportTo=../csv/ # get comma separated list of keys. do this by peeking into the first document in the collection and get his set of keys keys=`mongo "$host/$dbname" --eval "rs.slaveOk();var keys = []; for(var key in db.$collection.find().sort({_id: -1}).limit(1)[0]) { keys.push(key); }; keys;" --quiet`; # now use mongoexport with the set of keys to export the collection to csv mongoexport --host $host -d $dbname -c $collection --fields "$keys" --csv --out $exportTo$dbname.$collection.csv; IFS=$OIFS;
Los Code:
var mongoToCsvSH string func executeMongoToCsv() { out, err := exec.Command(mongoToCsvSH).Output() if err != nil { log.Fatal(err) } fmt.Printf("output is %s\n", out) }
Fazit:
Mit diesen Schritten können Sie ein Bash-Skript von Golang aus effektiv ausführen, entweder direkt oder über /bin/sh .
Das obige ist der detaillierte Inhalt vonWie kann ich Bash-Skripte nahtlos von Go aus ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!