J'essaie d'exécuter un script shell depuis mon programme go. Je veux démarrer une instance mongo
, puis supprimer des données. Ainsi, le script shell ressemblerait à quelque chose comme ceci:Commandes de shell shell golang
mongo
use test-db
db.user.remove({"id": 1})
J'ai d'abord essayé simplement en utilisant le paquet exec.Command
mais il ne chaîne pas les commandes de sorte que le mongo db ferme et je ne peux pas exécuter les autres commandes:
cmd := exec.Command("mongo", "test-db")
cmd.Start()
cmd1 := exec.Command("db.remove({\"id\": 1})")
cmd1.Run()
cmd.Wait()
La prochaine chose que j'ai essayé crée une variable et d'essayer d'exécuter ce via sh:
var script = `
#!/bin/bash
mongo
use test-db
db.user.remove({"id": 1})
`
et l'exécution exec.Command("sh", script)
Je sais que je peux créer un fichier .sh
mais je ne veux pas le faire est-il possible d'enchaîner les commandes dans go pour que mongo db ne se ferme pas et que je puisse exécuter les autres commandes?