Übergeben Sie Befehle aus dem Bash-Skript an die Mongo-Shell, ohne die interaktive Mongo-Shell zu unterbrechen - Linux, Bash, Mongodb, Shell

Ich suche ein Bash-Skript zu erstellenstellt eine Verbindung zu einer entfernten Mongo-Datenbank her und initialisiert eine interaktive Mongo-Shell, gibt ein paar Befehle an die interaktive Mongo-Shell aus und aktiviert dann die interaktive Shell, damit ich weiterhin Befehle eingeben kann.

Derzeit verstehe ich, dass ich eine Verbindung zu einer Mongo-Datenbank herstellen und einen Befehl in einem Bash-Skript wie folgt ausgeben kann:

mongo <ip>:<port>/<database> --eval "db.auth("myuname", "mypass");"

Wie auch immer, ich möchte, dass mein Bash - Skript dieKlicken Sie auf den obigen Befehl, und halten Sie dann die Mongo-Shell, die initialisiert wurde, so dass ich sie weiterhin verwenden und Befehle selbst eingeben kann. Es scheint, dass nach dem Ausführen des obigen Befehls eine Mongo-Shell erstellt und dann sofort nach dem angegebenen angehalten wird db.auth() Befehl wird ausgeführt, aber ich möchte die Shell über diesen Punkt hinaus laufen lassen.

Antworten:

4 für die Antwort № 1

Benutze die --shell Option neben dem --eval Möglichkeit. Dies hält die Mongo Shell Sitzung im interaktiven Modus nach dem Öffnen der --eval Code wird ausgeführt:

mongo --shell --eval "printjson("Hello, World!")"

Sie können auch Befehle eingeben ~/.mongorc.js und /etc/mongorc.js dass die Shell ausgeführt wird, wenn sie vom aktuellen Benutzer oder bei jedem Start gestartet wird. Siehe die Dateien Abschnitt der mongo shell docs.


Speisekarte