मेरे पास एक निष्पादन योग्य है जो एक उपयोगकर्ता-इंटरैक्टिव शेल शुरू करता है। मैं खोल के लॉन्च पर, पहले कुछ कमांड इंजेक्ट करना चाहूंगा, फिर उपयोगकर्ता को अपने इंटरैक्टिव सत्र के लिए अनुमति देगा। मैं इसे आसानी से उपयोग कर सकता हूं echo
:
echo "command 1\ncommand 2\ncommand3" | ./shell_executable
यह लगभग काम करता है। समस्या यह है कि इको कमांड जो कि प्रक्रिया के स्टड को खिला रही है, एक बार ईओएफ को हिट करती है, क्योंकि यह मेरे कमांड को इको कर रहा है। यह EOF शेल को तुरंत समाप्त करने का कारण बनता है (जैसे कि आपने शेल में Ctrl + D दबाया होगा)।
वहाँ एक EOF के कारण के बिना इन आदेशों को स्टड में इंजेक्ट करने का एक तरीका है?
./shell_executable
आदेशों की सूची के अंत में जोड़ने का प्रयास किया है ? हो सकता है कि आप इसे जारी रखें, हालांकि आपके पास दो चलने वाले उदाहरण (माता-पिता और बच्चे) होंगे।