Heim > Backend-Entwicklung > Golang > Wie kann ich Bash-Skripte nahtlos von Go aus ausführen?

Wie kann ich Bash-Skripte nahtlos von Go aus ausführen?

Susan Sarandon
Freigeben: 2024-12-16 14:32:12
Original
989 Leute haben es durchsucht

How Can I Seamlessly Execute Bash Scripts from Go?

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:

  1. Stellen Sie dem Skript #!/bin/sh (oder #) voran. !/bin/bash).
  2. Machen Sie das Skript mit chmod x ausführbar .

Verwenden von /bin/sh mit Skriptpfad:

  • Wenn Sie das Skript lieber nicht ausführbar machen möchten, rufen Sie / auf bin/sh und geben Sie den Skriptpfad als an Argument:
cmd := exec.Command("/bin/sh", mongoToCsvSH)
Nach dem Login kopieren

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;
Nach dem Login kopieren

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

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!

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