Вашият код не включва нищо, което записва в stdin на вашия дъщерен процес, така че ще се изненадам, ако получите многоточие, което показва непълна команда, когато всъщност не изпращате никаква команда - непълна или друга.
Като казахме това, много помощни програми за командния ред се държат по различен начин, когато открият истински терминал, свързан към техния stdin/stdout. напр. git log
ще показва резултатите, когато го стартирате директно, но не и когато подадете резултатите към друга команда като git log | cat
така че това може да е така и тук.
Това може да е свързано и с буферирането - ако потокът ви е буфериран на ред, тогава няма да видите нито един ред, който не завършва веднага с нов ред.
Истинският въпрос е:виждате ли >
бърз? Изпращате ли някаква команда към mongo shell?
Скриптирането на интерактивни CLI инструменти може да бъде трудно. напр. вижте какво трябваше да направя, за да тествам една много проста интерактивна програма тук:
Трябваше да създам две наименувани тръби, да се уверя, че stdin, stderr и stdout не са буферирани и след това да използвам някои други трикове, за да заработи. Това е шел скрипт, но е само за да ви покаже пример.