Twój kod nie zawiera niczego, co zapisuje na standardowe wejście Twojego procesu potomnego, więc byłbym zaskoczony, gdyby pojawił się wielokropek oznaczający niekompletne polecenie, podczas gdy w rzeczywistości w ogóle nie wysyłasz żadnego polecenia — niekompletne lub w inny sposób.
To powiedziawszy, wiele narzędzi wiersza poleceń zachowuje się inaczej, gdy odkryje prawdziwy terminal podłączony do ich stdin/stdout. Np. git log
pokaże wyniki, gdy uruchomisz go bezpośrednio, ale nie, gdy prześlesz wyniki do innego polecenia, takiego jak git log | cat
więc może tak być również w tym przypadku.
Może to mieć również związek z buforowaniem — jeśli strumień jest buforowany wierszami, nie zobaczysz od razu żadnej linii, która nie byłaby zakończona znakiem nowej linii.
Prawdziwe pytanie brzmi:czy widzisz >
podpowiedź? Czy wysyłasz jakieś polecenie do powłoki mongo?
Skryptowanie interaktywnych narzędzi CLI może być trudne. Np. zobacz, co musiałem zrobić, aby przetestować bardzo prosty interaktywny program tutaj:
Musiałem stworzyć dwa nazwane potoki, upewnić się, że stdin, stderr i stdout nie są buforowane, a następnie użyć kilku innych sztuczek, aby to zadziałało. Jest to skrypt powłoki, ale służy tylko do pokazania przykładu.