Mã của bạn không bao gồm bất kỳ thứ gì ghi vào stdin của quy trình con của bạn, vì vậy tôi sẽ ngạc nhiên nếu bạn nhận được dấu chấm lửng cho biết lệnh chưa hoàn chỉnh trong khi thực tế là bạn không gửi bất kỳ lệnh nào - không đầy đủ hoặc theo cách khác.
Điều đó đã được nói, nhiều tiện ích dòng lệnh hoạt động khác nhau khi chúng phát hiện ra một thiết bị đầu cuối thực được kết nối với stdin / stdout của chúng. Ví dụ. git log
sẽ trang kết quả khi bạn chạy trực tiếp nhưng không phải khi bạn chuyển kết quả sang một số lệnh khác như git log | cat
vì vậy đây cũng có thể là trường hợp ở đây.
Điều này cũng có thể liên quan đến bộ đệm - nếu luồng của bạn được đệm theo dòng thì bạn sẽ không thấy bất kỳ dòng nào không được kết thúc bằng một dòng mới ngay lập tức.
Câu hỏi thực sự là:bạn có thấy >
lời nhắc? Bạn có gửi lệnh nào tới trình bao mongo không?
Việc soạn thảo các công cụ CLI tương tác có thể khá phức tạp. Ví dụ. xem tôi phải làm gì để kiểm tra một chương trình tương tác rất đơn giản tại đây:
Tôi đã phải tạo hai đường ống được đặt tên, đảm bảo rằng stdin, stderr và stdout không được lưu vào bộ đệm, sau đó sử dụng một số thủ thuật khác để làm cho nó hoạt động. Nó là một tập lệnh shell nhưng nó chỉ để cho bạn thấy một ví dụ.