MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So erhalten Sie eine Mongo-Shell-Ausgabe (drei Punkte) für einen nicht abgeschlossenen Befehl

Ihr Code enthält nichts, was in die stdin Ihres untergeordneten Prozesses schreibt, daher wäre ich überrascht, wenn Sie die Auslassungspunkte erhalten, die auf einen unvollständigen Befehl hinweisen, obwohl Sie tatsächlich überhaupt keinen Befehl senden - unvollständig oder anderweitig.

Abgesehen davon verhalten sich viele Befehlszeilenprogramme anders, wenn sie ein echtes Terminal entdecken, das mit ihrer stdin/stdout verbunden ist. Z.B. git log blättert die Ergebnisse aus, wenn Sie es direkt ausführen, aber nicht, wenn Sie die Ergebnisse an einen anderen Befehl wie git log | cat das kann also auch hier der Fall sein.

Das kann auch mit der Pufferung zu tun haben - wenn Ihr Stream zeilengepuffert ist, sehen Sie keine Zeile, die nicht sofort mit einem Zeilenumbruch endet.

Die eigentliche Frage ist:sehen Sie den > prompt? Senden Sie irgendwelche Befehle an die Mongo-Shell?

Das Schreiben interaktiver CLI-Tools kann schwierig sein. Z.B. Sehen Sie hier, was ich tun musste, um ein sehr einfaches interaktives Programm zu testen:

Ich musste zwei benannte Pipes erstellen, sicherstellen, dass stdin, stderr und stdout nicht gepuffert sind, und dann einige andere Tricks anwenden, damit es funktioniert. Es ist ein Shell-Skript, aber es soll Ihnen nur ein Beispiel zeigen.