आपके कोड में कुछ भी शामिल नहीं है जो आपके बच्चे की प्रक्रिया के stdin को लिखता है, इसलिए मुझे आश्चर्य होगा यदि आपको दीर्घवृत्त मिलता है जो अपूर्ण कमांड को इंगित करता है जब वास्तव में आप कोई भी आदेश नहीं भेजते हैं - अपूर्ण या अन्यथा।
ऐसा कहा जा रहा है कि, कई कमांड लाइन उपयोगिताएं अलग-अलग व्यवहार करती हैं जब वे अपने स्टडीन/स्टडआउट से जुड़े वास्तविक टर्मिनल की खोज करते हैं। उदा. git log
जब आप इसे सीधे चलाते हैं तो परिणाम पृष्ठ पर होंगे, लेकिन तब नहीं जब आप परिणामों को किसी अन्य कमांड जैसे git log | cat
तो यहाँ भी ऐसा ही हो सकता है।
यह बफ़रिंग के साथ भी हो सकता है - यदि आपकी स्ट्रीम लाइन-बफ़र्ड है तो आपको कोई भी लाइन नहीं दिखाई देगी जो तुरंत एक नई लाइन के साथ समाप्त नहीं हुई है।
असली सवाल यह है:क्या आप >
देखते हैं तत्पर? क्या आप मोंगो शेल को कोई कमांड भेजते हैं?
इंटरैक्टिव सीएलआई टूल की स्क्रिप्टिंग करना मुश्किल हो सकता है। उदा. देखें कि मुझे यहां एक बहुत ही सरल इंटरैक्टिव प्रोग्राम का परीक्षण करने के लिए क्या करना है:
मुझे दो नामित पाइप बनाने थे, सुनिश्चित करें कि stdin, stderr और stdout बफ़र नहीं हैं, और फिर इसे काम करने के लिए कुछ अन्य तरकीबों का उपयोग करें। यह एक शेल स्क्रिप्ट है लेकिन यह आपको केवल एक उदाहरण दिखाने के लिए है।