मुझे node.js. के अंदर कुछ इंटरैक्टिव शेल कमांड चलाने होंगे चलो हमारे इंटरेक्टिव खोल $ python
हो:node.js के अंदर इंटरैक्टिव शेल कमांड कैसे चलाएं?
var cp = require('child_process');
var pythonChildProcess = cp.spawn('python');
pythonChildProcess.stdout.on("data", function(data) {
console.log('data successfully written!', data); // never outputs anything
});
pythonChildProcess.stdin.write('1 + 1');
pythonChildProcess.stdin.end();
इस कोड को उत्पादन के लिए कुछ भी नहीं है (लेकिन stdout 2
होना चाहिए)।
लेकिन अगर ऐसा होगा, तो एक और समस्या होगी: इसे कैसे इंटरैक्टिव बनाने के लिए? जब मैं pythonChildProcess.stdin.end();
पर कॉल करता हूं तो प्रक्रिया समाप्त होती है! लेकिन मैं सिर्फ stdin खत्म करना चाहता था और अगले stdin लिखना चाहता था!
यूपीडी: यदि मैं enter
बटन दबाकर अनुकरण कर सकता हूं - मैं प्रक्रिया को अंतःक्रियात्मक रूप से लिखने में सक्षम हूं। लेकिन इनपुट स्ट्रिंग के अंत में \n
जोड़ना मदद नहीं करता है।
"अंत stdin के लिए और अगले stdin लिखने"? क्या आप समझा सकते हैं कि इसका क्या मतलब है? –
@ E_net4, मैं '$ python' कमांड निष्पादित करना चाहता हूं, कुछ इनपुट लिखें (उदाहरण के लिए '1 + 1')," दबाएं' एंटर करें ", कुछ आउटपुट प्राप्त करें (मामले में' 2'), फिर लिखें एक और इनपुट ('10 + 10')," प्रेस 'एंटर करें "फिर से, कुछ और आउटपुट प्राप्त करें, फिर कुछ और इनपुट लिखें और इसी तरह ... और" इनपुट "के ऐसे अनुक्रम जिन्हें मैंने" stdins "नाम दिया है –
वे वास्तव में हैं एक एकल स्टडीन स्ट्रीम, जिसमें आप इनपुट की कई पंक्तियां भेजना चाहते हैं। –