Exécuter un script Bash de Golang

Je suis en train d'essayer de trouver un moyen pour exécuter un script (.sh) à partir de fichiers Golang. J'ai trouvé un couple de façons simples pour exécuter des commandes (par exemple, os/exec), mais ce que je cherche à faire est d'exécuter l'ensemble d'une sh de fichier (le fichier ensembles de variables, etc.).

En utilisant le standard de l'os/méthode exec pour cela ne semble pas être simple: à la fois en essayant d'entrée "./script.sh" et charger le contenu du script dans une chaîne de caractères ne fonctionnent pas comme des arguments pour la fonction exec.

par exemple, c'est un sh fichier que je veux exécuter de Go:

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;

du programme:

out, err := exec.Command(mongoToCsvSH).Output()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("output is %s\n", out)

où mongoToCsvSH peut être le chemin d'accès à la sh ou le contenu réel - les deux ne fonctionnent pas.

Des idées comment faire?

source d'informationauteur orcaman | 2014-09-14